[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]