Cappuccino你在回答的问题中搜一下,我回答过一个一摸一样的问题!

解决方案 »

  1.   

    unit FindFiles;interfaceuses
      Windows, Messages, SysUtils, Classes, FileCtrl;  procedure FindFilesInDir(const sDir, sExt: string; slFile: TStrings;
        bIncludeSubDir: boolean);
      
    implementationprocedure FindFilesInDir(const sDir, sExt: string; slFile: TStrings;
      bIncludeSubDir: boolean);
    var
      SearchRec: TSearchRec;
      sTmp, Dir: string;
    begin
      Dir := trim(sDir);
      if copy(Dir, length(Dir), 1) <> '\' then Dir := Dir + '\';
      if FindFirst(Dir + '*.*', faAnyfile, SearchRec) = 0 then
      begin
        repeat
          if (SearchRec.Name = '.') or (SearchRec.Name = '..') then
          begin
            ;
          end
          else if ((SearchRec.Attr and fadirectory) <> 0) and bIncludeSubDir then
          begin
            FindFilesInDir(Dir + SearchRec.Name, sExt, slFile, bIncludeSubDir);
          end
          else
          begin
            sTmp := UpperCase(ExtractFileExt(SearchRec.Name));
            if sTmp = '.' + UpperCase(sExt) then
              slFile.Add(Dir + SearchRec.Name);
          end;
        until FindNext(SearchRec) <> 0
      end;
      FindClose(SearchRec);
    end;end.