Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi FInden von Verzeichnissen mit FindFirst() (https://www.delphipraxis.net/22406-finden-von-verzeichnissen-mit-findfirst.html)

sepp001 17. Mai 2004 12:33


FInden von Verzeichnissen mit FindFirst()
 
Hallo,

ich habe da ein kleines Problem: Ich versuche, mit Hilfe von FindFirst() über Verzeichnisse zu iterieren, um deren Inhalt auszulesen. Jedoch liefert mir diese Funktion keine Verzeichnisnamen zurück.

Code:
strVerzeichnis := strEXEPfad + 'EP-Automaten\*.*';
i := FindFirst(strVerzeichnis, faDirectory, recSearch);

while i = 0 do
begin
  strAutomatPfad := strVerzeichnis + recSearch.Name + '\';
  leseDatei();
  schreibeAutomatenDaten();

  i := FindNext(recSearch);
end;

FindClose(recSearch);
Weiss jemand, wo der Fehler liegt?

Danke,
sepp001

iaby 17. Mai 2004 13:14

Re: FInden von Verzeichnissen mit FindFirst()
 
du schreibst ...faDirectory
hatte da auch so meine probleme mit dem verständnis dieses parameters
suche einfach nach faAnyFile und lese dann daraus die verzeichnisse aus
Delphi-Quellcode:
if recsearch.name[1]= '.' then...
oder auch
Delphi-Quellcode:
if directoryexists(research.name) then
gruss,
iaby

alcaeus 17. Mai 2004 13:16

Re: FInden von Verzeichnissen mit FindFirst()
 
oder einfach:
Delphi-Quellcode:
if (recsearch and faDirectory) = faDirectory then
//...
Bei mir hat die Suche mit faDirectory nichts ergeben, jedoch die Abfrage hat immer funktioniert.

sepp001 17. Mai 2004 13:18

Re: FInden von Verzeichnissen mit FindFirst()
 
Hallo,

falscher Alarm... Quellcode ist richtig, aber ich übergebe an die weiterverarbeitenden Funktionen den falschen Parameter (da befindet sich das '*.*' noch im String und das geht nicht gut).

Ciao,
sepp001

Erst denken, dann posten... *schäm*

Christian Seehase 17. Mai 2004 16:10

Re: FInden von Verzeichnissen mit FindFirst()
 
Moin iaby,

Zitat:

Zitat von iaby
... und lese dann daraus die verzeichnisse aus
Delphi-Quellcode:
if recsearch.name[1]= '.' then...

Wenn ich richtig annehme, dass Du damit die übliche Abfrage

Delphi-Quellcode:
if (recsearch.name <> '.') and (recsearch.name <> '..') then ...
meinst, muss ich Dir sagen, dass Deine Abfrage falsch ist.
Datei- und Verzeichnisnamen dürfen (und können) mit einem Punkt beginnen, auch wenn man dies im Explorer nicht so eingeben kann.
In der Konsole und natürlich bei der Angabe von Namen beim Erstellen einer Datei geht das hingegen problemlos.
Man muss also explizit '.' und '..' abfragen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz