![]() |
Frage zu FindFirst
Hallo! Ich will alle Dateien und Ordner in einem Verzeichnis bekommen und ich verwende dazu FindFirst und FindNext. Jetzt meine Frage:
Findet faAnyFile auch Ordner? Oder muss ich da faAnyFile+faDirectory schreiben? Wie verhindere ich, dass FindFirst bzw. FindNext mir auch die Ordner "." und ".." liefern? |
Re: Frage zu FindFirst
"." und ".." musst Du, denke ich, mit IF abfangen, so hab ich es immer gemacht...
|
Re: Frage zu FindFirst
Hi,
Delphi-Quellcode:
procedure DirShow (SearchDir, SearchFile : string;
var FileList : TStringList); var i : Integer; SearchRec : TSearchRec; begin if SearchDir[Length(SearchDir)] <> '\' then SearchDir := SearchDir + '\'; i := FindFirst(SearchDir + SearchFile, faDirectory, SearchRec); while i = 0 do begin if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then begin if FileExists(SearchDir + SearchRec.Name) then FileList.Add(SearchDir + SearchRec.Name); end; i := FindNext(SearchRec); end; FindClose(SearchRec); end; |
Re: Frage zu FindFirst
Code:
[b]faAnyFile =[/b] faReadOnly or faHidden or faSystemFile or faVolumeID or [b]faDirectory[/b] or faArchive or faSymLink;
Delphi-Quellcode:
[add]
B := FindFirst('*.*', SR);
While B do Begin If (SR.Name <> '.') and (SR.Name <> '..') Then If SR.Attr and faDirectory <> 0 Then Begin // alle Dateien End Else Begin // alle Verzeichnisse End; B := FindNext(SR); End; FindClose(SR); Na ja, zwar etwas langsam, dafür hab'sch dat wenigstens gerade selber geschrieben :mrgreen: Und wenn ich derzeit einen großen Fhler in 'nem anderem Modul finden würde, dann könnte ich mal erwähnen, das meine eigene FindFirst-Version "." und ".." erst garnicht mit auflistet und so'ne Abfrage überflüssig machen würde -.-'' |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:52 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 by Thomas Breitkreuz