我需要尽快在
C:\
上进行搜索,但由于它包含来自 Windows 11 的许多文件、程序文件和其他文件夹,因此在 SSD 上搜索需要 30 秒以上,而在 HDD 上则需要更长的时间。有没有更快的方法来做到这一点?
这是我使用的代码:
procedure SearchForFiles(const ADirectory, AFileMask: string);
var
FilesFound: TStringList;
FileNames: TArray<string>;
FileName: string;
begin
FilesFound := TStringList.Create;
try
FileNames := TDirectory.GetFiles(ADirectory, AFileMask, TSearchOption.soAllDirectories);
for FileName in FileNames do
FilesFound.Add(FileName);
// Display the results in the memo
Memo1.Lines.Assign(FilesFound);
finally
FilesFound.Free;
end;
end;
我这样称呼它:
Memo1.Clear; // Clear the memo before searching
SearchForFiles('C:\', '*.txt');
应用程序是64位,我使用Delphi 11
您可以尝试 FilesFound.BeginUpdate。在我的测试中,这节省了几秒钟。