![]() |
Re: Festplatte durchsuchen lassen???
hab ich gemacht aber die listbox bleibt leer. :roll:
Delphi-Quellcode:
:wall:procedure FindAllFiles(var FileList: TStrings; RootFolder: string; Mask: string = '*.*'; Recurse: Boolean = True); var SR: TSearchRec; begin IncludeTrailingPathDelimiter(RootFolder); if Recurse then if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory = faDirectory then // --> ein Verzeichnis wurde gefunden // der Verzeichnisname steht in SR.Name // der vollständige Verzeichnisname (inkl. darüberliegender Pfade) ist // RootFolder + SR.Name if (SR.Name <> '.') and (SR.Name <> '..') then FindAllFiles(FileList, RootFolder + SR.Name, Mask, Recurse); until FindNext(SR) <> 0; finally FindClose(SR); end; if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory <> faDirectory then begin // --> eine Datei wurde gefunden // der Dateiname steht in SR.Name // der vollständige Dateiname (inkl. Pfadangabe) ist // RootFolder + SR.Name Form1.ListBox1.Items.Add(RootFolder + SR.Name); end; until FindNext(SR) <> 0; finally FindClose(SR); end; end; |
Re: Festplatte durchsuchen lassen???
Ich zitiere mal die Mieze:
Zitat:
Greetz alcaeus |
Re: Festplatte durchsuchen lassen???
hi,
na den code hab ich doch da steht doch schon form1.listbox1.items.add gucks du
Delphi-Quellcode:
procedure FindAllFiles(var FileList: TStrings; RootFolder: string; Mask: string = '*.*'; Recurse: Boolean = True); var SR: TSearchRec; begin IncludeTrailingPathDelimiter(RootFolder); if Recurse then if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory = faDirectory then // --> ein Verzeichnis wurde gefunden // der Verzeichnisname steht in SR.Name // der vollständige Verzeichnisname (inkl. darüberliegender Pfade) ist // RootFolder + SR.Name if (SR.Name <> '.') and (SR.Name <> '..') then FindAllFiles(FileList, RootFolder + SR.Name, Mask, Recurse); until FindNext(SR) <> 0; finally FindClose(SR); end; if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory <> faDirectory then begin // --> eine Datei wurde gefunden // der Dateiname steht in SR.Name // der vollständige Dateiname (inkl. Pfadangabe) ist // RootFolder + SR.Name Form1.ListBox1.Items.Add(RootFolder + SR.Name); end; until FindNext(SR) <> 0; finally FindClose(SR); end; end; |
Re: Festplatte durchsuchen lassen???
Scroll im oben verlinken Thread mal runter. Da findest Du den (meinen) Code, den alcaeus gemeint hat, auch.
Guckst Du:
Delphi-Quellcode:
mfG
procedure FileList(const APath, AExt: string; ARecurse: Boolean;
AList: TStrings); var F : TSearchRec; Path : string; begin Path := IncludeTrailingPathDelimiter(APath); // nur für Delphi 4 und höher! if (ARecurse) and (FindFirst(Path + '*.*', faAnyFile, F) = 0) then try repeat if (F.Name <> '.') and (F.Name <> '..') and ((F.Attr and faDirectory) = faDirectory) then FileList(Path + F.Name, AExt, ARecurse, AList); until FindNext(F) <> 0; finally FindClose(F); end; if FindFirst(Path + AExt, faAnyFile, F) = 0 then try repeat if (F.Name <> '.') and (F.Name <> '..') and ((F.Attr and faDirectory) <> faDirectory) then AList.Add(Path + F.Name); until FindNext(F) <> 0; finally FindClose(F); end; mirage228 |
Re: Festplatte durchsuchen lassen???
Zitat:
Delphi-Quellcode:
und rufe die Funktion so auf:
FileList.Add(RootFolder + SR.Name);
Delphi-Quellcode:
Das sollte dann klappen. Den zweiten Source musst du eben nicht anpassen, da er ja allgemein ist. Du musst einfach nur übergeben, wohin er die Strings kopieren soll.
procedure FindAllFiles(Form1.ListBox1.Items, <DeinPfad>, <DeineMask);
Greetz alcaeus |
Re: Festplatte durchsuchen lassen???
:hi: ich glaub ich lass es lieber ich bekomme es nicht auf die reihe dank euch trozdem.
gruss |
Re: Festplatte durchsuchen lassen???
die listbox bleibt troz allem leer kann nicht mal jemand die procedure posten für ne listbox.
für ganz doofe :wall: |
Re: Festplatte durchsuchen lassen???
Erst willst du aufgeben, 7 Minuten später doch nicht mehr.
Pushen ist auch innerhalb von 24 Stunden nicht gestattet. Mach es so, das geht 100%
Delphi-Quellcode:
Um mehrere Dateiendungen zu durchsuchen kannst du das ja hintereinander aufrufen.
procedure FindAllFiles(RootFolder: string; Mask: string = '*.*'; Recurse: Boolean = True);
var SR: TSearchRec; begin RootFolder := IncludeTrailingPathDelimiter(RootFolder); if Recurse then if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory = faDirectory then if (SR.Name <> '.') and (SR.Name <> '..') then FindAllFiles(RootFolder + SR.Name, Mask, Recurse); until FindNext(SR) <> 0; finally FindClose(SR); end; if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory <> faDirectory then begin Form1.ListBox1.Items.Add(RootFolder + SR.Name); end; until FindNext(SR) <> 0; finally FindClose(SR); end; end; procedure TForm1.Button1Click(Sender: TObject); begin FindAllFiles('f:\mp3s\', '*.mp3', true); end; |
Re: Festplatte durchsuchen lassen???
hi Martze ,
danke dir muss ich noch was beachten wen ich den code einfüge ? gruss bernd, :spin2: |
Re: Festplatte durchsuchen lassen???
Zitat:
Zitat:
Nein, du musst nichts beachten, alles in den implementation-Abschnitt. Eine ListBox auf's Formular. Und aufrufen muss du das natürlich nicht über einen Button, war nur ein Beispiel. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 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-2025 by Thomas Breitkreuz