Entwickler-Ecke
Windows API - Herausfinden, ob ein Pfad eine Datei ist oder ein Ordner ?
LonghornUser - So 22.04.07 10:10
Titel: Herausfinden, ob ein Pfad eine Datei ist oder ein Ordner ?
Hallo,
ist es irgendwie möglich herauszufinden, ob ein Pfad zu einer Datei oder zu einem Ordner führt ?
Danke schonmal.
Ciao LHUser
Andreas L. - So 22.04.07 10:14
Delphi-Quelltext
1: 2: 3: 4:
| if DirectoryExists('DeinPfad') then else |
In C++ gibts ja IsFile. Ob man das irgendwie in Delphi importieren kann. Aber ich denke das obengenannte sollte funktionieren.
BenBE - So 22.04.07 11:55
Könnte man so prüfen:
Delphi-Quelltext
1: 2: 3: 4:
| Function IsFile(Filename: String): Boolean; Begin Result := FileExists(Filename) and not FileExists(Filename + '\.'); end; |
Nutzt ein wenig Dateisystem-Logik von Windows aus: Die Datei . existiert nur für Verzeichnisse, nicht jedoch für Dateien ;-)
Heiko - So 22.04.07 12:06
Oder so (FileExists auseinandergenommen):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| var DirEx : Cardinal; begin DirEx:=GetFileAttributesA(PAnsiChar(Root)); if DirEx<>DWord(-1) then begin if FILE_ATTRIBUTE_DIRECTORY and DirEx=FILE_ATTRIBUTE_DIRECTORY then IstOrdner else IstDatei; end; end; |
Was DirEx noch alles beinhaltet siehst du
hier [
http://msdn2.microsoft.com/en-us/library/aa364944.aspx]
LonghornUser - So 22.04.07 12:29
Erstmal danke für eure Antworten.
@ Andreas L.:
Wenn aber ein Ordner eingegeben wurde, der nicht existiert habe ich ein falsches Ergebnis.
@ BenBE:
Da sagt er bei mir immer Ordner
@ Heiko:
Das könnte klappen, aber ich bekomme die Fehlermeldung
Quelltext
1:
| [Fehler] Unit10.pas(67): Undefinierter Bezeichner: 'Root' |
BenBE - So 22.04.07 12:33
LonghornUser hat folgendes geschrieben: |
Erstmal danke für eure Antworten.
@ Andreas L.:
Wenn aber ein Ordner eingegeben wurde, der nicht existiert habe ich ein falsches Ergebnis.
@ BenBE:
Da sagt er bei mir immer Ordner |
Dann halt so ;-)
Delphi-Quelltext
1: 2: 3: 4:
| Function IsFile(Filename: String): Boolean; Begin Result := FileExists(Filename) and not DirectoryExists(Filename); end; |
LonghornUser hat folgendes geschrieben: |
@ Heiko:
Das könnte klappen, aber ich bekomme die Fehlermeldung
Quelltext 1:
| [Fehler] Unit10.pas(67): Undefinierter Bezeichner: 'Root' | |
Root ist das zu prüfende Verzeichnis\Datei.
LonghornUser - So 22.04.07 12:38
@BenBE: Ahh, jetzt klappt alles. Danke !!! (Es geht mit Heikos und deiner Variante ;) )
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!