加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何通过Delphi中的所有子目录搜索文件

发布时间:2020-12-15 04:09:03 所属栏目:大数据 来源:网络整理
导读:我已经在Delphi中实现了这个代码,它将搜索文件或给出的名称,但它忽略了搜索所有子目录.如何才能做到这一点? 码: if FindFirst(filePath,faAnyFile,searchResult)=0 then try repeat lbSearchResult.Items.Append(searchResult.Name); until FindNext(searc
我已经在Delphi中实现了这个代码,它将搜索文件或给出的名称,但它忽略了搜索所有子目录.如何才能做到这一点?

码:

if FindFirst(filePath,faAnyFile,searchResult)=0 then
  try
    repeat
    lbSearchResult.Items.Append(searchResult.Name);

    until FindNext(searchResult)<>0
  except
  on e:Exception do
  ShowMessage(e.Message);
  end; //try ends
  FindClose(searchResult);

解决方法

如果您不需要线程,最简单的方法是:
procedure TForm1.AddAllFilesInDir(const Dir: string);
var
  SR: TSearchRec;
begin
  if FindFirst(IncludeTrailingBackslash(Dir) + '*.*',faAnyFile or faDirectory,SR) = 0 then
    try
      repeat
        if (SR.Attr and faDirectory) = 0 then
          ListBox1.Items.Add(SR.Name)
        else if (SR.Name <> '.') and (SR.Name <> '..') then
          AddAllFilesInDir(IncludeTrailingBackslash(Dir) + SR.Name);  // recursive call!
      until FindNext(Sr) <> 0;
    finally
      FindClose(SR);
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.Items.BeginUpdate;
  AddAllFilesInDir('C:UsersAndreas RejbrandDocumentsAweb');
  ListBox1.Items.EndUpdate;
end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读