相关疑难解决方法(0)

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

我已经在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); 
Run Code Online (Sandbox Code Playgroud)

delphi

8
推荐指数
2
解决办法
2万
查看次数

如何查找系统上所有磁盘的驱动器号?

我想在系统上的所有磁盘上搜索文件.我已经知道如何从这个问题搜索单个磁盘:如何通过Delphi中的所有子目录搜索文件

我用它作为

function TMyForm.FileSearch(const dirName: string);

...

FileSearch('C:');
Run Code Online (Sandbox Code Playgroud)

我不知道怎么做是用它来查找所有可用驱动器号,C,D,E等的文件.如何找到那些可用驱动器号的列表?

windows delphi winapi

4
推荐指数
1
解决办法
806
查看次数

Delphi中的文件搜索忽略了一些Windows目录

我正在使用此线程中的代码(如何通过Delphi中的所有SubDirectories搜索文件)以递归方式查找文件:

procedure FindFilePattern(root:String;pattern:String);
var
  SR:TSearchRec;
begin
  root:=IncludeTrailingPathDelimiter(root);
  if FindFirst(root+'*.*',faAnyFile,SR) = 0 then
  begin
      repeat
          Application.ProcessMessages;
          if ((SR.Attr and faDirectory) = SR.Attr ) and (pos('.',SR.Name)=0) then
             FindFilePattern(root+SR.Name,pattern)
          else
          begin
           if pos(pattern,SR.Name)>0 then Form1.ListBox1.Items.Add(Root+SR.Name);
          end;
      until FindNext(SR)<>0;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  FindFilePattern('C:\','.exe');
end;
Run Code Online (Sandbox Code Playgroud)

它工作但由于某种原因,它忽略了目录Program Files,Program Files(x86)和Users.不幸的是,我正在搜索的文件位于这些文件夹中.有人知道为什么会这样吗?

任何提示都会非常有帮助,

谢谢

windows delphi winapi

0
推荐指数
1
解决办法
399
查看次数

标签 统计

delphi ×3

winapi ×2

windows ×2