在Delphi中搜索隐藏文件夹中的文件夹和特定文件

时间:2014-10-01 07:50:43

标签: delphi search

基本上我试图用Delphi编写一个脚本来查找Users/[user]/AppData/Roaming/Skype/[Username]/目录中文件的位置( main.db ),问题就在于此 -

我事先不知道[用户]是什么,也不知道[用户名]是什么,我不确定我是否可以使用通配符。我更喜欢它是在控制台应用程序形式,以便我可以根据我的需要进行调整。

这就是我目前所拥有的:

program SearchConsole2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

procedure FindFilePattern(root:String;pattern:String);
var
  SR:TSearchRec;
begin
  root:=IncludeTrailingPathDelimiter(root);
  if FindFirst(root+'*.*',faAnyFile,SR) = 0 then
  begin
      repeat
          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 Writeln(Root+SR.Name);
          end;
      until FindNext(SR)<>0;
  end;
end;

begin
  FindFilePattern('C:\users\','.db');
  readln;
end.

//我不确定我在这里缺少什么,C:\Users\搜索.exe可以从[User]文件夹中提取内容 - 但我真的需要一种方法如果可能的话,提取[User]文件夹和skype [Username]文件夹的名称,或者使用两者的通配符失败?

1 个答案:

答案 0 :(得分:0)

拨打GetEnvironmentVariable(),如下所示:

GetEnvironmentVariable('APPDATA')

这将返回漫游文件夹的路径,而无需对用户名进行硬编码。