微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

delphi – 计数文件夹中的文件夹

有谁知道一个代码,我可以用来计算指定目录中的文件数量

解决方法

我知道的最简单的代码是使用IoUtils单元的TDirectory:
function GetDirectoryCount(const DirName: string): Integer;
begin
  Result := Length(TDirectory.GetDirectories(DirName));
end;

TDirectory.GetDirectories实际上返回一个包含目录名称的动态数组,所以这有点低效.如果你想要最有效的解决方案,那么你应该使用FindFirst枚举.

function GetDirectoryCount(const DirName: string): Integer;
var
  res: Integer;
  SearchRec: TSearchRec;
  Name: string;
begin
  Result := 0;
  res := FindFirst(TPath.Combine(DirName,'*'),faAnyFile,SearchRec);
  if res=0 then begin
    try
      while res=0 do begin
        if SearchRec.FindData.dwFileAttributes and faDirectory<>0 then begin
          Name := SearchRec.FindData.cFileName;
          if (Name<>'.') and (Name<>'..') then begin
            inc(Result);
          end;
        end;
        res := FindNext(SearchRec);
      end;
    finally
      FindClose(SearchRec);
    end;
  end;
end;

原文地址:https://www.jb51.cc/delphi/101440.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐