小编mar*_*mpo的帖子

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

我想在系统上的所有磁盘上搜索文件.我已经知道如何从这个问题搜索单个磁盘:如何通过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 ×2

winapi ×2

windows ×2