[Back to DIRS SWAG index] [Back to Main SWAG index] [Original]

    {
    > Can any one tell me a way to make pascal (TP 6.0) search a Complete
    > drive, including all subdirectories, even ones that are not in the
    > path, looking For a specific File extension?  I.E., having the Program
    > search For *.doC and saving that to a Text File?

    Ok, here goes nothing.
    }

    {$M 65000 0 655360}
    {Assign enough stack space For recursion}

    Program FindAllFiles;

    Uses Dos;

    Var
      FileName : Text;

    Procedure ScanDir(path : PathStr);

    Var
      SearchFile : SearchRec;
    begin
      if Path[Length(Path)] <> '\' then
        Path := Path + '\';
      FindFirst(Path + '*.*', $37, SearchFile); { Find Files and Directories }
      While DosError = 0 do { While There are more Files }
      begin
        if ((SearchFile.Attr and $10) = $10) and (SearchFile.Name[1] <> '.') then
          ScanDir(Path + SearchFile.Name)
          { Found a directory Make sure it's not . or .. Scan this dir also }
        else
        if Pos('.doC',SearchFile.Name)>0 then
          Writeln(FileName, Path + SearchFile.Name);
          { if the .doC appears in the File name, Write path to File. }
        FindNext(SearchFile);
      end;
    end;

    begin
      Assign(FileName,'doCS'); { File to contain list of .doCs }
      ReWrite(FileName);
      ScanDir('C:\'); { Drive to scan. }
      Close(FileName);
    end.

[Back to DIRS SWAG index] [Back to Main SWAG index] [Original]