Einzelnen Beitrag anzeigen

blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: 2 Verzeichnisse physikalisch identisch? NTFS-Hardlinks!

  Alt 23. Apr 2009, 01:55
Hallo.

Danke für eure Antworten.

Zu GetFileInformationByHandle habe ich in der MSDN folgendes gefunden:

Zitat:
You can compare the VolumeSerialNumber and FileIndex members returned in the BY_HANDLE_FILE_INFORMATION structure to determine if two paths map to the same target; for example, you can compare two file paths and determine if they map to the same directory.
( http://msdn.microsoft.com/en-us/library/aa364952(VS.85).aspx )

Mir ist dort der Begriff "VolumeSerialNumber" aufgefallen... war das nicht die unaussagekräftige 4-Byte "Seriennummer" des Datenträgers? Wenn ja, wird es Grenzfälle geben, bei denen die Seriennummern gleich, die Datenträger aber unterschiedlich sind. Ein einfaches Beispiel wäre, wenn ich eine Diskette kopiere, dann wäre danach VolumeSerialNumber[A:] == VolumeSerialNumber[B:] und damit würde der Algorithmus zu dem Ergebnis DirIdentical('A:\x\', 'B:\x\') == true kommen, wenn zusätzlich beide Verzeichnisse x auf den Disketten durch Zufall die selbe interne Nummer haben.

Problem 2: Die Funktion kann bei Netzwerklaufwerken fehlschlagen. Was ist dann zu tun? Es kann ja auch ein Netzlaufwerk geben, bei dem der Samba-Daemon den Symlinks folgt.

Ich befürchte, mir bleibt nichts anderes übrig, als wirklich eine Datei in Verzeichnis A zu schreiben und zu schauen, ob sie in Verzeichnis B existiert, wenn ich größtmöglichste Kompatibilität haben möchte.

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat