我使用以下代码获取特定目录。
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 := string(FBuf) + '\Documents',我认为它可以正常工作。 但是我的疑问是,这是所有Windows PC上的"我的文档"路径(个人文件夹/文档)吗?用户是否可以更改此结构并在其他地方创建“我的文档”文件夹(例如:c:\documents)? 如果用户可以更改路径,请提供正确的方法,并且我想知道“My Documents”或“Documents”的名称。