Entwickler-Ecke
Dateizugriff - ordner rekursiv nach bestimmten dateien suchen
Luncustaf - Sa 12.04.03 11:14
Titel: ordner rekursiv nach bestimmten dateien suchen
hi,
ich hab hier nene code für das rekursive durchsuchen von ordnern. das klappt aber nur wenn er allgemein nahc allen dateien sucht. ich will aber nur nach zb *.mp3 suchen das er mir alle mp3's auflistet die sich in einem unter ordner befinden.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| var Rec:TSearchRec; begin //Die beiden ersten gefundenen Einträge ignorieren FindFirst(Dir+'\*.*', faAnyFile,Rec); FindNext(Rec);
if FindNext(Rec)=0 then begin repeat frmzentral.mp3.Add(Dir+'\'+Rec.Name); //wenn der Eintrag ein Verzeichnis ist, ebenfalls durchgehen if (Rec.Attr and faDirectory = faDirectory) then FindFiles(Dir+'\'+Rec.Name); until FindNext(Rec)<>0; end; Findclose(Rec); |
ich hab gedacht ich kann das hier ändern
Quelltext
1:
| FindFirst(Dir+'\*.*', faAnyFile,Rec); |
aber das klappt nicht :(
kann mit vllt jemand helfen
gr€€tz
delphiDeveloper - Sa 12.04.03 12:53
Titel: Folgendes Programmfragment sucht rekursiv nach Files
hier werden alle pas Dateien im Verzeichnis (+Unterverzeichnisse) "C:\myDelphiProg" angezeigt.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| procedure GetAllFiles(mask: string); var Search: TSearchrec; verz: string; such: string;
begin such := ExtractFileName(mask); verz := ExtractFilepath(mask); if verz[length(verz)] <> '\' then verz := verz + '\'; { alle Dateien suchen } if FindFirst(mask, $23, Search) = 0 then repeat Form1.listbox1.items.add(verz + Search.Name);
until FindNext(Search) <> 0; { Unterverzeichnisse durchsuchen } if FindFirst(verz + '*.*', fadirectory, Search) = 0 then begin; repeat if ((search.attr and fadirectory) = fadirectory) and (search.name[1] <> '.') then GetAllFiles(verz + Search.Name + '\' + such); until FindNext(Search) <> 0;
end; Findclose(Search); end;
procedure TForm1.Button1Click(Sender: TObject); begin GetAllFiles('C:\myDelphiProg\*.pas'); end; |
Luncustaf - Sa 12.04.03 14:15
cool danke vielmals klappt einwandfrei :D
gr€€tz
wulfskin - So 13.04.03 12:19
Hallo Luncustaf!
Die Idee diese eine Zeile zu ändern ist im Prinzip nicht schlecht. Das Problem ist nur, dass dadurch nur noch Dateien mit dieser Endung angezeigt werden, aber leider keine Verzeichnisse mehr.
Das heisst, du kannst nur in einer Ebene Dateien auflisten lassen. Ansonsten musst du es so machen, wie delphiDeveloper es dir geschrieben hat!
Gruß wulfskin!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!