本文整理自网络,侵删。
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);beginGetAllFilesEM('d:\', '*.py', Memo1.Lines, True);end;
相关阅读 >>
Delphi 使用firedac打开sqlite数据库韩文、阿拉伯文出现乱码的处理方法
Delphi firedac 如何按整型(byte)读取 mysql tinyint(1) 类型字段?
Delphi 获取适合微信使用的当前日期,以int64表示,是当前时间和1970-01-01 00:00:00之间的秒差
更多相关阅读请进入《Delphi》频道 >>