Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Windows API / MS.NET Framework API (https://www.delphipraxis.net/20-library-windows-api-ms-net-framework-api/)
-   -   Alternative zu CreateHardlink() (auch NT4-kompatibel!) (https://www.delphipraxis.net/56028-alternative-zu-createhardlink-auch-nt4-kompatibel.html)

Olli 30. Okt 2005 18:47


Alternative zu CreateHardlink() (auch NT4-kompatibel!)
 
In dem Beitrag "CreateHardLinkW ... aber auch für WinNT4 ..." habe ich bereits vor langer Zeit eine Version der Funktion MSDN-Library durchsuchenCreateHardLink() vorgestellt, die voll mit Windows NT 4.0 kompatibel ist. Heute möchte ich in Kürze eine Alternative vorstellen: MSDN-Library durchsuchenMoveFileEx(). 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 :thumb:

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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz