Entwickler-Ecke

Dateizugriff - Suche nach bestimmter Datei in Unterordnern ?


Blackheart666 - Mi 26.10.05 14:53
Titel: Suche nach bestimmter Datei in Unterordnern ?
Hallo Leute !
Ich Suche mit dem unterem Code nach bestimmten Textdateien die den entsprechende String
aus Edit1 im Dateinamen enthalten.
Nun möchte Ich auch Unterordner bei der Suche miteinbeziehen.
Jetzt meine Frage kann Ich das in meinen Code mit einbauen ohne eine Extra Prozedur zu schreiben.
Mir gehts Ja um die Suche nach bestimmten Dateien und nicht nach allen.
Nach allen Dateien Suchen - hab Ich hier im Forum genug gefunden aber das läuft alles über
extra Prozeduren oder Functionen.



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button1Click(Sender: TObject);
var
   sr:TsearchRec;
begin
  Listbox1.Clear;
  Suche:=Edit1.Text;
  if FindFirst(ShellTreeView1.Path + '\*'+Suche+'*.TXT*', faAnyFile - faDirectory, sr) = 0 then
    ListBox1.Items.Add(sr.Name);
     while FindNext(sr) = 0 do
       ListBox1.Items.Add(sr.Name);
    FindClose(sr);
end;


retnyg - Mi 26.10.05 14:57

Suche in: Delphi-Forum, Delphi-Library SEARCHTOOL


noidic - Mi 26.10.05 14:59

Was hast du gegen Prozeduren und Funktionen?


Blackheart666 - Mi 26.10.05 16:20

"Danke für die Hilfe !"

Hab nichts Dagegen !
Bräuchte die aber nur einmal und da hätt auch die ButtonClick
Methode ausgereicht find Ich naja.

Habs jetzt hinbekommen.
Ich hätte gern dieses hier ('\*') mit in die Prozedur eingebaut hat aber irgendwie nicht so gefunzt.

Für alle die es auch mal brauchen.


Delphi-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:
procedure DateiSuchen(Pfad:String; Suche:String; Endung:String; Liste: TStrings; Unterverzeichnis: Boolean);
var
 sr:TSearchRec;
begin
  if (Pfad<>''and (Pfad[Length(Pfad)]<>'\'then Pfad:=Pfad+'\';
  if (FindFirst(Pfad + Suche + Endung, faAnyFile-faDirectory, sr)=0then begin
    repeat
      if (sr.Name<>'.'and (sr.Name<>'..'and (sr.Attr<>faDirectory) then
          Liste.Add(Pfad+sr.Name)
    until FindNext(sr)<>0;
    FindClose(sr);
  end;
if Unterverzeichnis then
    if (FindFirst(Pfad + '*.*', faDirectory, sr)=0then
    begin
      repeat
        if (sr.Name<>'.'and (sr.Name<>'..'then
          DateiSuchen(Pfad + sr.Name, Suche, Endung, Liste, True);
      until FindNext(sr)<>0;
       FindClose(sr);
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
 Listbox1.Clear;
 DateiSuchen(ShellTreeView1.Path, '\*' + Edit1.Text, '*.txt*', ListBox1.Items, True);
end;