当前位置: 首页 > 技术文档, 资源共享 > 正文
avatar

已经验证过,已使用.代码没问题…

uses Masks;
procedure GetFileListEx(FilePath, ExtMask: string; FileList: TStrings;
  SubDirectory: Boolean = True);
  function Match(FileName: string; MaskList: TStrings): Boolean;
  var
    i: integer;
  begin
    Result := False;
    for i := 0 to MaskList.Count - 1 do
    begin
      if MatchesMask(FileName, MaskList[i]) then
      begin
        Result := True;
        break;
      end;
    end;
  end;

var
  FileRec: TSearchRec;
  MaskList: TStringList;
begin
  if DirectoryExists(FilePath) then
  begin
    if FilePath[Length(FilePath)] <> '\' then
      FilePath := FilePath + '\';
    if FindFirst(FilePath + '*.*', faAnyFile, FileRec) = 0 then
    begin
      MaskList := TStringList.Create;
      try
        ExtractStrings([';'], [], PChar(ExtMask), MaskList);
        FileList.BeginUpdate;
        repeat
          if ((FileRec.Attr and faDirectory) <> 0) and SubDirectory then
          begin
            if (FileRec.Name <> '.') and (FileRec.Name <> '..') then
              GetFileListEx(FilePath + FileRec.Name + '\', ExtMask, FileList);
          end
          else
          begin
            if Match(FilePath + FileRec.Name, MaskList) then
              FileList.Add( FilePath +  FileRec.Name);
          end;
        until FindNext(FileRec) <> 0;
        FileList.EndUpdate;
      finally
        MaskList.Free;
      end;
    end;
    FindClose(FileRec);
  end;
end;
  Memo1.Lines.Clear;
  GetFileListEx(edit1.Text, '*.txt',Memo1.Lines, true);

已经验证过,已使用.代码没问题…

本文固定链接: https://blog.yanhualou.com/jishu/969.html | 烟花楼博客

delphi 遍历目录获取所有文件名:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter