Nein SearchDir gibt nichts zurück. Und soll auch nur einmal aufgerufen werden (is rekrusiv).
Und warum soll ein Thread "suspenden", nachdem eine Schleife ausgeführt wurde?
Das ist SearchDir (auch mit einer Schleife!):
Delphi-Quellcode:
procedure TSearchThread.SearchDir(
const APath :
string;
const AParent : TDelphiDirectory);
var
sr : TSearchRec;
df : TDelphiFile;
begin
AParent.DeleteEnabled := false;
if FindFirst(APath + '
*.*', faAnyFile, sr) = 0
then
begin
try
repeat
{$WARN UNIT_PLATFORM OFF}
if (sr.
Name <> '
.')
and (sr.
Name <> '
..')
and ((sr.Attr
and faSysFile) <> faSysFile)
then
{$WARN UNIT_PLATFORM ON}
begin
if (sr.Attr
and faDirectory) = faDirectory
then
begin
df := AParent.Add(sr.
Name, false);
df.DeleteEnabled := FDeleteFolders;
df.SetDeletionCount(@FDeletionCount);
df.OnDelete := FDeleteEvent;
SearchDir(APath + sr.
Name + '
\', (
df as TDelphiDirectory));
end
else
begin
with AParent.Add(sr.
Name, true)
do
begin
DeleteEnabled :=
not IsFileFiltered(sr.
Name);
SetDeletionCount(@FDeletionCount);
OnDelete := FDeleteEvent;
end;
SetFile(sr.
Name);
end;
end;
until (FindNext(sr) <> 0)
or (Breaked);
finally
FindClose(sr);
end;
end;
end;
MfG
xZise