[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]
{
>I still need some help writing a program similar to MS-DOS DELTREE.
>Even though I RTFM, I aparrently don't understand the syntax for
>FindFirst and FindNext.
I was just playing with this yesterday. The following is not pretty,
but it should work. Hope it helps.
}
procedure DelTree(const RootDir : String);
var
SearchRec : TSearchRec;
begin
Try
ChDir(RootDir); {Path to the directory given as parameter }
FindFirst('*.*',faAnyFile,SearchRec);
Erc := 0;
while Erc = 0 do begin
{ Ignore higher level markers }
if ((SearchRec.Name <> '.' )
and (SearchRec.Name <> '..')) then begin
if (SearchRec.Attr and faDirectory>0) then begin
{ Have found a directory, not a file.
Recusively call ouselves to delete its files }
DelTree(SearchRec.Name);
end
else begin
{Found a file. Delete it or whatever
you want to do here }
end;
end;
Erc := FindNext (SearchRec);
{ Erc is zero if FindNext successful,
otherwise Erc = negative DOS error }
{Give someone else a chance to run}
Application.ProcessMessages;
end;
finally
{ If we are not at the root of the disk, back up a level }
if Length(RootDir) > 3 then
ChDir('..');
{ I guess you would remove directory RootDir here }
end;
end;
[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]