Contributor: DUNCAN MCNIVEN
{>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;


AltStyle によって変換されたページ (->オリジナル) /