home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / REDFIL.ZIP / REDFIL.PAS
Encoding:
Pascal/Delphi Source File  |  1993-01-04  |  1.1 KB  |  47 lines

  1. Program ReadFile;
  2.  
  3. {This is just a simple demonstration of how to use recursion to list all
  4.  files within a disk or diskette.
  5.  
  6.  James C Walker <Cap'n> 72355,1616}
  7.  
  8. Uses TPCrt, Dos;
  9.  
  10. Var
  11.   Directory : String;
  12.  
  13.   Flip : boolean;
  14.  
  15. Procedure ShowIt(Directry : String; FileInfo : SearchRec);
  16. begin
  17.   Writeln('Name : ', Directry + FileInfo.Name,
  18.           '':(50 - (Length(FileInfo.Name) + Length(Directry))),
  19.                ' Attribute: ', FileInfo.Attr);
  20. end;
  21.  
  22. Procedure ReadFiles(Dir : String);
  23.  Var
  24.     ch : char;
  25.     FileInfo : SearchRec;
  26.  
  27.  begin
  28.    If Flip then FindFirst(Dir + '*.*', AnyFile, FileInfo);
  29.    While DosError = 0 do
  30.      begin
  31.        ShowIt(Dir, FileInfo);
  32.        If (FileInfo.Attr = $10) and (FileInfo.Name <> '.') and
  33.           (FileInfo.Name <> '..') then
  34.           begin
  35.             Flip := True;
  36.             ReadFiles(Dir + FileInfo.Name + '\');
  37.           end;
  38.        Flip := False;
  39.        FindNext(FileInfo);
  40.      end;
  41.  end;
  42.  
  43. begin
  44.   Directory := '\';
  45.   Flip := True;
  46.   ReadFiles(Directory);
  47. end.