gpt4 book ai didi

delphi - FileSize 函数的速度问题

转载 作者:行者123 更新时间:2023-12-02 06:06:21 24 4
gpt4 key购买 nike

好的,

我使用此函数来获取程序中的文件大小,即使对于 4GB 以上的文件,它也能很好地工作。

function FileSize(const PathtoFile: string): Int64;
var
AttributeData: TWin32FileAttributeData;
begin
if GetFileAttributesEx(PChar(PathtoFile), GetFileExInfoStandard,
@AttributeData) then
begin
Int64Rec(Result).Lo := AttributeData.nFileSizeLow;
Int64Rec(Result).Hi := AttributeData.nFileSizeHigh;
end
else
Result := -1;
end;

现在,问题是,当使用 AQTime Standard 分析我的应用程序时,我发现我的程序在获取大约 4758 个文件 的文件大小时,在此函数中花费了大约 35 秒 > 相比之下,处理相同数量的文件时,我的 GetFileAttribute 函数花费的时间约为 5 秒。请问是否有任何代码可以代替我当前的代码(即使是 ASM)来加快操作速度。

最佳答案

GetFileAttributesEx 和 GetFileAttributes 都是 Windows api 调用。确实没什么收获。

您可以考虑的事情之一是直接读取 MFT,如果您让它工作,速度将会非常快。但这不是一个简单的 5 行解决方案。

请参阅此答案以获取更多信息:https://stackoverflow.com/a/3061745/1107597

关于delphi - FileSize 函数的速度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25114059/

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