Hallo,
in einem Programm möchte ich die Ordnerattribute eines Quellordners mit denen des Zielordners synchronisieren (sprich: der Zielordner soll exakt dieselben Attribute erhalten).
Jetzt stellt sich folgendes Problem dar: Ist der Quellordner ein Root-Verzeichnis (z.B. 'c:\'), funktioniert das nicht wie gewünscht (der Zielordner sollte NICHT die Attribute vom Root-Verzeichnis bekommen).
Wie kann ich jetzt prüfen, ob "c:\" ein Root-Verzeichnis ist? Ich könnte theoretisch prüfen, ob der Quellordner im Format "X:\" ist - allerdings würde es dann bei Netzwerk-Ordnern nicht mehr funktionieren (die lauten ja beispielsweise "\\Netzwerkrechner\c\").
Gibt es eine einfache Möglichkeit oder gar eine Funktion, mit der ich prüfen kann, ob es sich um ein Root-Verzeichnis handelt? Oder alternativ - wie ließe sich folg. Code für diese Problematik optimieren:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure SynchronizeFolderAttr(SourceFolder, TargetFolder: String); var FileAttributes: Integer; begin FileAttributes := FileGetAttr(SourceFolder); if FileAttributes <> INVALID_FILE_ATTRIBUTES then FileSetAttr(TargetFolder, FileAttributes); end; |
Eine weitere Alternative wäre wohl zu prüfen, ob es sich überhaupt um einen Ordner handelt. Allerdings geht das zumindest über FileGetAttr auch nicht, da "c:\" als faDirectory erkannt wird.
Herzlichen Dank für alle Tipps!