gpt4 book ai didi

delphi - 计算给定路径的子目录数

转载 作者:行者123 更新时间:2023-12-03 19:34:31 26 4
gpt4 key购买 nike

我需要在文件系统中进行一些搜索,并希望显示进度指示。
粗略近似为遍历的目录数。

function GetSubDirCount(Path : String): integer;
var
Index : Integer;
Temp : String;
SearchRec : TSearchRec;
begin
Result:= 0;
Temp:= Path;

if Path[Length(Path)] <> SysUtils.PathDelim then begin
Path:= Path + SysUtils.PathDelim;
end;
Path:= Path + '*.';

Index:= FindFirst(Path, faDirectory, SearchRec);

while Index = 0 do begin
if (SearchRec.Name = '.') or (SearchRec.Name = '..') then begin
Index:= FindNext(SearchRec);
Continue;
end;

Inc(Result);
Result:= Result + GetSubDirCount(Temp + SysUtils.PathDelim + SearchRec.Name);
Index:= FindNext(SearchRec);
end;

FindClose(SearchRec);
end;


我目前使用上面的代码,有没有更快的方法?
我只对计数感兴趣。
如果有一种非常快的方法来获取文件数量,那将是一个好处。

最佳答案

由于您没有指定要使用的Delphi版本,因此建议使用IOUtils中的相应方法-TDirectory.GetDirectoriesTDirectory.GetFiles,因为它们在最新的Delphi版本中可用。

更新:这可能不是计算目录和文件数量的最快方法,但是如果以后还要对文件进行迭代,那么最好将这些函数的结果用于迭代。

关于delphi - 计算给定路径的子目录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8492356/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com