Unterscheiden Verzeichnis/Datei
-
Hallo zusammen,
ich muss ab einem bestimmten Verzeichnis Rekursiv nach unten gehen und Dateien in eine Zip-Datei schreiben. Wie kann ich unterscheiden ob es sich bei einem Item um eine Datei (=in die Zipdatei) oder um einen Ordner (=öffnen und nach Dateien und Ordnern suchen) handelt.
So was wie isDir gibts leider nicht...
Gruß
Dominique
-
Naja, Ordner haben keine Endungen. (.exe) Außerdem kannst du noch zusätzlich die Dateigröße überprüfen. (Ordner haben ja keine?)
-
***räusper***
Ordner können sehr vohl eine Extension haben ! Ausserdem könnte man ja mal einen Blick auf die Dateiattribute riskieren, da gibts nämlich so ein Flag:
FA_DIREC bei Verwendung von findfirst
bzw.
faDirectory bei Verwendung von FindFirst
Gelle
-
Also ich hab noch keinen Order mit extension gesehen!?
-
Also ich hab noch keinen Order mit extension gesehen!?
Es kommt ja auch selten vor, aber da es grundsätzlich möglich ist sollte man das schon berücksichtigen.
-
Gen.d.Pz.Tr.Seb schrieb:
Also ich hab noch keinen Order mit extension gesehen!?
Erstelle einen Ordner und benenne ihn so um: "Ordner.txt"... Und genauso gehts ja auch mit Dateien, es gibt Dateien, die keine Extension haben, z.B. erstelle eine Textdatei und nenne sie "Textdatei" ohne ".txt". Aber nocheine Möglichkeit wäre ja aufzurufen:
AnsiString asFile="C:\\Blablabla\\Hastenichjesehn.txt"; bool bDir=DirectoryExists(asFile);
Wenn das Verzeichnis nicht existiert, und du es aber per FindFirst / FindNext gefunden hast, muss es sich ja um eine Datei handeln...
-
Geh aber jetzt bloß nicht her und überprüfe jede Datei mit DirectoryExists, innerhalb FindFirst / FindNext, ob es sich hierbei um ein Verzeichniss handelt
***schauder***
-
okok jetzt hab ichs kapiert.
Danke.
-
Wieso nicht? Was ist daran so schlimm? Würde mich jetzt mal interessieren. Macht doch auch nichts weiter als zu gucken, ob die Attribute für ein Verzeichnis sprechen oder nicht... Warum das Rad neu erfinden?
-
Weil findfirst/findnext dir bereits mitliefert, ob es sich um ein Verzeichnis handelt. Wenn du das extra überprüfst, bedeutet es zusätzlichen (redundanten) Aufwand, der sich vor allem in größeren Projekten rächen wird.
-
Ahso, na dann...