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