Contributor: BRENDEN WALKER           

(*
===========================================================================
 BBS: The Beta Connection
Date: 06-05-93 (12:54)             Number: 67
From: BRENDEN WALKER               Refer#: NONE
  To: WAYNE DOYLE                   Recvd: NO
Subj: DIR. SEARCH                    Conf: (321) Pascal___U
---------------------------------------------------------------------------
 WD³ Hi Everyone,
   ³     I'm interested in finding out how to have the computer search and
   ³ find all of the available directories on a disk.  I have a program which
   ³ deletes all of *.BAK files on a disk and I'd like to know how it finds
   ³ all of the directories.

  The below example code, will kill a directory and all of it's
sub-directories.  This could be modified to delete all of the .BAK files in
all directories on the hard-drive.

  Of course, this may not help much, but I rarely use pseudo-code.
*)

procedure Kill_Dir(p : pathstr);
var Od, Rd : pathstr;
    Sr : SearchRec;
    t : file;

begin
  getdir(0,Od);
  ChDir(p);
  if length(p) > 4 then p := p + '\';
  FindFirst('*.*', anyfile, Sr);
  while DosError = 0 do
  begin
    temp := p + Sr.Name;
    if (Sr.Attr and Directory > 0) then
    begin
       if (Sr.Name <> '.') and (Sr.Name <> '..') then
       begin
         Rd := temp;
         Kill_Dir(temp);
         RmDir(Rd);
       end;
    end
      else
      begin
        assign(t,sr.name);
        erase(t);
      end;
    FindNext(Sr);
  end;
  ChDir(Od);
end;