是否有更快的方法来使用 TDirectory.GetFiles 或不使用 TDirectory.GetFiles 来搜索文件?

问题描述 投票:0回答:1

我需要尽快在

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

delphi
1个回答
0
投票

您可以尝试 FilesFound.BeginUpdate。在我的测试中,这节省了几秒钟。

© www.soinside.com 2019 - 2024. All rights reserved.