我用下面的代碼來獲取特殊目錄獲取我的文檔在Delphi中的文件夾路徑
uses
ActiveX, ShlObj;
{...}
procedure TForm1.Button1Click(Sender: TObject);
// Replace CSIDL_HISTORY with the constants below
var
Allocator: IMalloc;
SpecialDir: PItemIdList;
FBuf: array[0..MAX_PATH] of Char;
PerDir: string;
begin
if SHGetMalloc(Allocator) = NOERROR then
begin
SHGetSpecialFolderLocation(Form1.Handle, CSIDL_PERSONAL, SpecialDir);
SHGetPathFromIDList(SpecialDir, @FBuf[0]);
Allocator.Free(SpecialDir);
ShowMessage(string(FBuf));
end;
end;
,現在我想找到我的文檔路徑 所以我用 mydocfolderpath:=字符串(FBuf)+' \文件',我認爲它運作良好 但我的疑問是這是所有的Windows PC(個人文件夾/文件)mydocuments路徑可以讓用戶改變這個結構,並使我的文件夾anywhare其他(如:c:\ documents) if用戶更改路徑給我一個正確的方法,我想知道什麼是mydocuments文件夾(我的文檔或文檔)的名稱
請注意某些版本的Windows使用本地化的路徑名稱。除非您完全確定所運行的版本和語言,否則絕對不要使用英語或任何語言將「特殊」文件夾名稱添加爲字符串常量。它可能不是目標系統上的正確名稱。始終使用特定的CSIDL_或其更新的等價物之一。 – 2010-11-01 11:05:11