In dem Beitrag "
CreateHardLinkW ... aber auch für WinNT4 ..." habe ich bereits vor langer Zeit eine Version der Funktion
CreateHardLink() vorgestellt, die voll mit Windows NT 4.0 kompatibel ist. Heute möchte ich in Kürze eine Alternative vorstellen:
MoveFileEx(). Microsoft behauptet zwar bei
MOVEFILE_CREATE_HARDLINK, daß es nur reserviert ist ("Reserved for future use."), aber die Funktionalität existiert bereits und funktioniert auch hervorragend!
Code:
MoveFileEx('[color=gray]<Hier den Pfad zur existierenden Datei>[/color]', '[color=gray]<Hier den Pfad zum zu erstellenden Hardlink!>[/color]', MOVEFILE_CREATE_HARDLINK);
Und jetzt kommt die positive Überraschung: dies funktioniert bereits ab Windows NT 4.0 (ohne SP) - nicht jedoch auf Windows NT 3.51 (SP3).
Vorteile hat dies insofern, weil man keine Kopfstände machen muß wie ich sie in der Funktion im o.g. Beitrag gemacht habe. Stattdessen kann man bequem schon in Windows NT 4.0 Hardlinks erstellen
ACHTUNG: das o.g. Flag scheint sich nicht mit MOVEFILE_DELAY_UNTIL_REBOOT zu vertragen.
PS: Eigentlich logisch, diese Funktionen zu kombinieren, wenn man sich anschaut, daß in der Native
API die Strukturen ("Records") für das Umbenennen ("Verschieben") und das Verlinken von Dateien identisch sind und sich nur die InformationClass unterscheidet.