Delphi 根据扩展名的文件搜索


本文整理自网络,侵删。

 
procedure GetAllFilesEM(Path, ExtMask: String; List: TStrings;
  SubFolder: Boolean);
var
 Attrib, k: Integer;
 Search: TSearchRec;
begin
 Attrib := faArchive + faReadOnly + faHidden;

 if Path[Length(Path)] <> '\' then Path := Path + '\';

 with TStringList.Create do
 try
   CommaText := ExtMask;

   for k := 0 to Count - 1 do
   if FindFirst(Path + '*.' + Strings[k], Attrib, Search) = 0 then
     repeat
       List.Add(AnsiUpperCase(Path + Search.Name));
     until FindNext(Search) <> 0;

   FindClose(Search);
 finally Free end;

 if SubFolder then
 begin
   if FindFirst(Path + '*.*', faDirectory, Search) = 0 then
   begin
     repeat
       if ((Search.Attr and faDirectory) = faDirectory) and
         (Search.Name[1] <> '.') then
         GetAllFilesEM(Path + Search.Name, ExtMask, List, SubFolder);
         Application.ProcessMessages ;
     until FindNext(Search) <> 0;

     FindClose(Search);
   end;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
GetAllFilesEM('d:\', '*.py', Memo1.Lines, True);
end;

相关阅读 >>

Delphi 使用firedac打开sqlite数据库韩文、阿拉伯文出现乱码的处理方法

Delphi 获取系统当前活动窗口的句柄及对应的进程名

Delphi firedac 如何按整型(byte)读取 mysql tinyint(1) 类型字段?

Delphi 获取适合微信使用的当前日期,以int64表示,是当前时间和1970-01-01 00:00:00之间的秒差

Delphi取得trichedit的光标当前位置

Delphi xe 控件字体加粗变色居中等

Delphi 一个文件重复生成的小工具[附源码]

Delphi写一个utf8编码格式的文本文件

Delphi 字符串保存为 txt文件

使用Delphi启动和关闭外部应用程序

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...