Subversion Repositories svn.Prod repos

Rev

Rev 31 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. program filefind;
  2. Uses    sysutils;
  3. var     directory : string;
  4. var     progname : string;
  5.  
  6. // ============================================================================
  7. // Functions
  8. // ============================================================================
  9.  
  10. procedure Usage(mesg : string);
  11. begin
  12.         Writeln('Usage: ' + progname + ' directory');
  13.         Writeln(mesg);
  14. end;
  15.  
  16. procedure traverse(directory : string);
  17. var     curdir1, curdir2 : string;
  18.         Info : TSearchRec;
  19.         pfile : string;
  20. begin
  21.         curdir1 := GetCurrentDir;
  22.         chdir(directory);
  23.         curdir2 := GetCurrentDir;
  24.         FindFirst(directory + '/*', faAnyFile or faHidden, Info);
  25.         repeat
  26.                 if ((Info.name <> '..') and (Info.name <> '.'))
  27.                 then
  28.                         begin
  29.                         pfile := curdir2 + '/' + Info.name;
  30.                         Writeln(pfile);
  31.                         if (DirectoryExists(pfile))
  32.                         then
  33.                                 traverse(pfile)
  34.                         end
  35.         until FindNext(Info) <> 0;
  36.         chdir(curdir1);
  37. end;
  38.  
  39. procedure start_traverse(directory : string);
  40. begin
  41.         Writeln(directory);
  42.         traverse(directory);
  43. end;
  44.  
  45. // ============================================================================
  46. // Main
  47. // ============================================================================
  48.  
  49. begin
  50.         progname := ParamStr(0);
  51.         directory := ParamStr(1);
  52.         if (ParamCount = 1)
  53.         then
  54.                 if DirectoryExists(directory)
  55.                 then
  56.                         start_traverse(directory)
  57.                 else
  58.                         Usage('ERROR: Not a directory : ' + directory)
  59.         else
  60.                 Usage('ERROR: 1 argument expected');
  61. end.
  62.