delphi 多功能遍历文件/目录  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi 多功能遍历文件/目录


procedure FilesFromWildcard(Directory: String; const Mask: String; Files: TStringList; Subdirs, ShowDirs, Multitasking: Boolean);

var

  SearchRec: TSearchRec;

  Attr, Error: Integer;

begin

  Directory := IncludeTrailingPathDelimiter(Directory);


  // First, find the required file...

  Attr := faAnyFile;

  if ShowDirs = False then

    Attr := Attr - faDirectory;

  Error := FindFirst(Directory + Mask, Attr, SearchRec);

  if (Error = 0) then begin

    while (Error = 0) do begin

      // Found one!

      Files.Add(Directory + SearchRec.Name);

      Error := FindNext(SearchRec);

      if Multitasking then

        Application.ProcessMessages;

    end;

    FindClose(SearchRec);

  end;


  // Then walk through all subdirectories.

  if Subdirs then begin

    Error := FindFirst(Directory + '*.*', faAnyFile, SearchRec);

    if (Error = 0) then begin

      while (Error = 0) do begin

        // Found one!

        if (SearchRec.Name[1] <> '.') and (SearchRec.Attr and

          faDirectory <> 0) then

          // We do this recursively!

          FilesFromWildcard(Directory + SearchRec.Name, Mask, Files,

            Subdirs, ShowDirs, Multitasking);

        Error := FindNext(SearchRec);

      end;

      FindClose(SearchRec);

    end;

  end;

end;



procedure TForm1.Button1Click(Sender: TObject);

var

t:tstringlist;

begin

t:=tstringlist.Create;

//FilesFromWildcard('d:\','*.*',t,false,false,false); //获取当前目录下所有文件

//FilesFromWildcard('d:\','*.*',t,false,true,false);  //当前目录+文件

//FilesFromWildcard('d:\','*.*',t,true,false,false);  //获取当前目录包括子目录所有文件

FilesFromWildcard('d:\','*.*',t,true,true,false);  //遍历所有目录和文件

Memo1.Text:=t.text;

end;



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.054354906082153 seconds