我用下面的代码来获取特殊目录获取我的文档在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