0
所以基本上我试图用Delphi编写一个脚本,在Users/[user]/AppData/Roaming/Skype/[Username]/
目录中找到文件的位置(main.db),问题因此 -在Delphi中隐藏文件夹中搜索文件夹和特定文件
我不知道[用户]提前什么,也没有[用户名]是什么,我不确定我是否可以通配符。我更喜欢它是在控制台应用程序的形式,以便我可以适应我所需要的,以及。
这是我目前有:
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]文件夹和skype [用户名]文件夹的名称,或者如果可能的话,使用通配符解决这个问题?
若要直接进入应用程序数据漫游文件夹,可以使用SHGetKnownFolderPath函数和['FOLDERID_RoamingAppData'](http://msdn.microsoft.com/zh-cn/library/windows/desktop/dd378457(v = vs.85).aspx#FOLDERID_RoamingAppData)上面的Vista上的文件夹ID,或带有['CSIDL_APPDATA']的SHGetFolderPath'(http://msdn.microsoft.com/zh-cn/library/windows/desktop/bb762494(v = vs.85).aspx#CSIDL_APPDATA)Windows 2k以上的文件夹ID直到Windows XP。路径的其余部分,'[用户名]',是不是Skype用户名或与Skype有关的东西? – TLama 2014-10-01 08:01:11
是的。绝对不要硬编码'Users /.../AppData/Roaming',因为这可能会有所不同。除此之外,它很简单。 – 2014-10-01 08:02:16
是的,[用户名]将成为skype用户名,显然我不知道,所以它需要被忽略和搜索过去或通配,我猜? 自从我编写任何代码已经很长时间了,我如何将FOLDERID_RoamingAppData添加到上述代码中,或者如果我不能,我是否应该使用它的具体方法? – Thomi 2014-10-01 08:09:34