ja hast recht "pfad" muss dahin, vorher ging es auch es wurden aber nicht alle ordner komplett durchsucht, deshalb ist es mir nicht gleich aufgefallen:
Hier nochmal die procedure inklusieve Unterordnern durchsuchen:
Delphi-Quellcode:
procedure TFormDateienSuchen.UnterordnerDurchsuchen(ext: Str3; Pfad : String);
var sr: TSearchRec;
r: Integer;
begin
r:= FindFirst(Pfad + '\*.*' , faAnyFile,sr);
if r = 0 then begin
try
while r = 0 do
Begin
if (sr.Name <> '.') and (sr.Name <> '..') then
begin
If (sr.Attr and FaDirectory) = faDirectory then
begin
UnterordnerDurchsuchen (ext,pfad + '\' + sr.Name);
ListBoxOrdner.Items.Add(Pfad + '\' + sr.Name);
end
else
if AnsiUpperCase(ExtractFileExt(sr.Name)) = '.'+ AnsiUpperCase(ext) then
ListBoxDateien.Items.Add(pfad + '\' + sr.Name);
end;
// Application.ProcessMessages;
r:= FindNext (sr);
end;
finally
FindClose (sr);
end;
end;
end;
Hier die procedure ohne Unterordner durchsuchen:
Delphi-Quellcode:
procedure TFormDateienSuchen.Durchsuchen(ext: Str3; Pfad : String);
var sr: TSearchRec;
r: Integer;
begin
r:= FindFirst(Pfad + '\*.*' , faAnyFile,sr);
if r = 0 then
begin
try
while r = 0 do
Begin
if (sr.Name <> '.') and (sr.Name <> '..') then
Begin
ListBoxDateien.Items.Add(pfad + '\' + sr.Name);
end;
end;
Application.ProcessMessages;
r:= FindNext (sr);
// end;
finally
FindClose (sr);
end;
end;
end;
so funtioniert es aber nicht. es wird zwar compiliert, hängt aber dann bei aktivierung der procedure in einer endlosschleife...
greg