![]() |
Re: prüfen, ob es ein Ordner ist
Was macht DirectoryExists, wenn es sich um eine Datei handelt?
|
Re: prüfen, ob es ein Ordner ist
Ich will schwer hoffen, dass dann false zurückgeliefert wird. Schrieb ich aber auch schon oben.
|
Re: prüfen, ob es ein Ordner ist
Zitat:
Datei: c:\Rumpelstilzchen\Feuerlöscher.jpg Ordner: c:\Rumpelstilzchen\Feuerlöscher.jpg\ <== so kann ja auch ein Ordner heißen Wenn der Ordner nun ohne Backslash am Ende da steht und es diese Datei auch gibt, kann man es wohl nicht unterscheiden, oder irre ich mich da? :gruebel: |
Re: prüfen, ob es ein Ordner ist
Probier es aus, aber ich meine, dass es mit DirectoryExist geht.
PS: Kann es gerade selber nicht ausprobieren... |
Re: prüfen, ob es ein Ordner ist
Uii, so schnell kann man ja kaum mitlesen...
Mal schauen, ob ich alles entdeckt habe. Also: Mit Dateiendung abfragen geht nicht, weil auch Dateien bei sind, die evtl keine Endung haben, aber trotzdem keine Ordner sind und umgekehrt kanns ja auch sein. FindFirst: Bitte nicht schlagen, aber wenn ich FindFirst auf einen Ordner anwende, frage ich dann nicht den Inhalt des Ordners ab und nicht den Ordner selbst? An DirectoryExists hatte ich auch schon gedacht, bin aber davon ausgegenagen, dass es "unsauber" sei... :oops: Aber wenn es schnell und zuverlässig ist... Werds gleich mal testen. Bis gleich, Gina. |
Re: prüfen, ob es ein Ordner ist
Zitat:
Delphi-Quellcode:
Dort wird geprüft, ob die gefundene Datei ein Ordner ist oder nicht.
Result := ((f.dwFileAttributes and faDirectory) = faDirectory);
|
Re: prüfen, ob es ein Ordner ist
Also ich kann unter XP keine Datei mit dem gleichen Namen wie ein im selben Verzeichnis befindlichen Ordner erstellen... Ist das immer so? Dann würde DirectoryExists funktionieren. Es wird auf jeden Fall false zurückgegeben, wenn eine Datei ohne Dateiendung geprüft wird...
Das wäre dann wohl das Kürzeste, oder? Thx, Gina. PS: Was ist eigentlich "dwFileAttributes" ? Ist das aus D2005? :roll: |
Re: prüfen, ob es ein Ordner ist
Moin Zusammen,
warum beisst ihr euch eigentlich alle an DirectoryExists fest? Wenn sicher ist, dass es sich um eine Datei oder ein Verzeichnis handelt, könnte man einfach mit FileExists prüfen, ob es eine Datei ist. BTW: Meiner Erfahrung nach funktioniert DirectoryExists unter Windows ME nicht sauber, zumindest die Version aus D5. |
Re: prüfen, ob es ein Ordner ist
Hi, hier will doch keiner beißen :wink:
Es geht lediglich um eine schnelle und sichere Methode, um zu prüfen, ob es ein Ordner ist. Ich sehe da keinen großen Unterschied, ob ich nun FileExist oder DirectoryExist nehme. Ob nun eine davon verläßlicher ist, kann ich leider nicht beurteilen. Die Frage ist, ob eins der beiden ausreicht. "Wenn sicher ist, dass es sich um eine Datei oder ein Verzeichnis handelt..." Was könnte es denn sonst noch sein? :gruebel: Ein Laufwerk wird als Ordner erkannt, was für meine Zwecke ok ist... Nochmal zu faDirectory: Kann ich das zur auch Prüfung benutzen, ohne vorher FindFirst anzuwenden? Ich bin immernoch der Meinung, dass mit FindFirst der Inhalt des angegebenen Pfades nach Ordnern geprüft wird, nicht der Pfad selbst. Ansonsten hab ich Euch falsch verstanden. :oops: Vielleicht hilft mir dann ein kleines Beispiel weiter, wie es gemeint sein soll? Das wäre supi. Vielen lieben Dank, Gina. |
Re: prüfen, ob es ein Ordner ist
Moin Gina,
Zitat:
Zitat:
Wenn jetzt der Pfad keine Wildcards (*,?) enthält wird exakt der angebene Pfad gesucht. Ich habe die Erfahrung gemacht, dass es am Besten ist als Attributflags faAnyFile anzugeben, und anschliessend auf Directory usw. zu prüfen. Für Deinen Anwendungsfall dürfte allerdings die unmittelbare Prüfung mittels DirectoryExists/FileExists am meisten Sinn machen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz