![]() |
Ordner nach *.exe durchsuchen
Guten Abend zusammen...
ich habe folgenden Quellcode mit dem ich alle Ordner in einem Ordner auflisten kann... ohne Recursive suche und unterdateien ganz einfach so: --Ordner <-- Zu durchsuchender Ordner ----Ordner im Ordner 1 <-- Erster gefundener Ordner im Ordner ----Ordner im Ordner 2 <-- Zweiter gefundener Ordner im Ordner ----usw. das ganze lasse ich mit in eine Listbox auflisten. nun muss ich aber in den unterordnern jeweils noch eine *.exe Datei finden und die in eine andere Listbox eintragen lassen... ich hab etliche male versucht die FindFiles-funktionen die man ja überall findet um zu schreiben, jedoch ohne ergebniss... hier mal der code der die ordner in einem ordner NICHT rekursiv findet und auflistet ;)
Delphi-Quellcode:
aufgerufen mit:
procedure DirectorySearch(ADirectory: string; AMask: String);
var SR: TSearchRec; begin if FindFirst(ADirectory + '*.*', faDirectory, SR)=0 then begin repeat if (SR.Attr and faDirectory = faDirectory) and (sr.Name<>'.') and (sr.Name<>'..') then with form1 do begin AdvSmoothListBox1.Items.Add.Caption:=(sr.Name); AdvSmoothListBox1.Items.Sort; end; until FindNext(SR)<>0; FindClose(SR); end; end;
Delphi-Quellcode:
wie gesagt es müssen nur die *.exe Dateien in den jeweiligen unterordnern gefunden werden und in eine weitere listbox aufgelistet werden...
DirectorySearch('SUCHORDNER','*.*');
vielen dank im voraus für jede antwort :) |
Re: Ordner nach *.exe durchsuchen
Einfach neues TSearchRec und neues FindFirst/Findnext mit dem Filter '*.exe' und dem Attribut faAnyFile
|
Re: Ordner nach *.exe durchsuchen
an welcher stelle?! als neue Procedure?
sorry ich hab echt lange dran probiert und jetzt verlässts mich langsam... |
Re: Ordner nach *.exe durchsuchen
Delphi-Quellcode:
...
if FindFirst(ADirectory + '*.exe', faDirectory, SR)=0 then // C:\*.exe -- so in etwa sollte es aussehen ... |
Re: Ordner nach *.exe durchsuchen
Einfach die Liste mit den Ordnern durchgehen und da nach Exe suchen:
Delphi-Quellcode:
Ich bin auch kein Code-Spezialist, aber bei deiner ersten Procedure könnte man einiges übersichtlicher machen:
// Eigentlich Blödsinn, für jede Aufgabe eine extra Procedure
// könnte man prima mit ein paar Parametern in einer lösen // aber zu leichteren Verständnis procedure ExeSearch(ADirectory: String); var SR: TSearchRec; begin if FindFirst(ADirectory + '\*.exe', faAnyFile, SR)=0 then begin repeat with form1 do begin ListBox1.Items.Add(sr.Name); end; until FindNext(SR)<>0; FindClose(SR); end; end; // Aufrufen etwa so var i : Integer; begin for i := 0 to AdvSmoothListBox1.Items.Count do begin ExeSearch(AdvSmoothListBox1.Items[i]); end; end; |
Re: Ordner nach *.exe durchsuchen
Zitat:
|
Re: Ordner nach *.exe durchsuchen
Zitat:
|
Re: Ordner nach *.exe durchsuchen
Ok, kenne AdvSmoothListBox1 nicht. dachte Items ist eine StringList.
ich muss jetzt etwas raten, funktioniert:
Delphi-Quellcode:
Ansonsten musst Du selber schauen, wo die Strings gespeicheert sind.
ExeSearch(AdvSmoothListBox1.Items[i].Caption);
|
Re: Ordner nach *.exe durchsuchen
Listenindex überschreitet das Maximum (12)
|
Re: Ordner nach *.exe durchsuchen
Delphi-Quellcode:
Wenn das erste Element den Index 0 hat, hat das letzte den Index Count -1.
for i := 0 to AdvSmoothListBox1.Items.Count -1 do
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:57 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