Subversion Repositories svn.Prod repos

Rev

Rev 29 | 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.  
  5. procedure traverse(directory : string);
  6. var     curdir1, curdir2 : string;
  7.         Info : TSearchRec;
  8.         pfile : string;
  9. begin
  10.         curdir1 := GetCurrentDir;
  11.         chdir(directory);
  12.         curdir2 := GetCurrentDir;
  13.         FindFirst(directory + '/*', faAnyFile or faHidden, Info);
  14.         repeat
  15.                 if ((Info.name <> '..') and (Info.name <> '.'))
  16.                 then
  17.                         begin
  18.                         pfile := curdir2 + '/' + Info.name;
  19.                         Writeln(pfile);
  20.                         if (DirectoryExists(pfile))
  21.                         then
  22.                                 traverse(pfile)
  23.                         end
  24.         until FindNext(Info) <> 0;
  25.         chdir(curdir1);
  26. end;
  27.  
  28. procedure start_traverse(directory : string);
  29. begin
  30.         Writeln(directory);
  31.         traverse(directory);
  32. end;
  33.  
  34. begin
  35.         directory := ParamStr(1);
  36.         if (ParamCount = 1)
  37.         then
  38.                 if DirectoryExists(directory)
  39.                 then
  40.                         start_traverse(directory)
  41.                 else
  42.                         Writeln ('ERROR: Not a directory : ', directory)
  43.         else
  44.                 Writeln('ERROR: Give directory as argument');
  45. end.
  46.