Feedback

HardLink erstellen

Sprache: C#

Wer kennt nicht die Funktion 'ln -s' aus dem Linux Umfeld, mit diesem Snippet könt ihr das gleiche unter Windows machen ok ok nicht ganz denn unter linux ist es ein Softlink das heisst, wenn die Quelldatei gelöscht oder verschoben wird, ist dieser Link unter linux nicht mehr funktionstüchtig ein Hardlink dagegen bleibt auch benutzbar wenn die source datei gelöscht wird und was ist jetzt der Hauptgrund einen Link zu erstellen 'Beide Dateien sind immer identisch egal welche Datei geändert wird' Vorraussetztung NTFS muß natürlich noch mit rein using System.Runtime.InteropServices;
[DllImport("kernel32.dll", EntryPoint="CreateHardLinkA", CharSet=CharSet.Ansi, SetLastError=true, ExactSpelling=true)]
        private static extern long CreateHardLink(string lpFileName, string lpExistingFileName, IntPtr lpSecurityAttributes);
       
        public void CreateHardLink(String sourcePath, string destPath) {
            CreateHardLink(destPath, sourcePath, IntPtr.Zero);
        }
[DllImport("kernel32.dll", EntryPoint="CreateHardLinkA", CharSet=CharSet.Ansi, SetLastError=true, ExactSpelling=true)]
        private static extern long CreateHardLink(string lpFileName, string lpExistingFileName, IntPtr lpSecurityAttributes);
       
        public void CreateHardLink(String sourcePath, string destPath) {
            CreateHardLink(destPath, sourcePath, IntPtr.Zero);
        }

1 Kommentar

  1. Hallo

    ist ein gutes und nützliches Snippet. Hatte mir grad Gedanken gemacht wie ich mir eins in C# schreiben kann. Bin von berufswegen als IT’ler auch Linux User und weiß das kleine Prog zu schätzen. Unter MS OS geht das meines Wissens mit MS Tools erst seit Vista mit fsutil.exe, bzw. ich hatte mal vor einem Jahr ein nettes Tool dessen Name mir grad nicht einfällt..

    Danke