我有一个 KNOWNFOLDERID
,我想知道相应的路径,如 C:....\folder。
KNOWNFOLDERID
可以在这里找到。
http://msdn.microsoft.com/en-us/library/bb762584%28VS.85%29.aspx
我想使用win api (我不想构建包含所有 KNOWNFOLDERID 和路径的数组)。
谢谢
最佳答案
只需调用 SHGetKnownFolderPath
API函数。
由于此函数是在 Vista 中添加的,因此不会在 Delphi 7 附带的库单元中声明它。因此您需要自己声明它。
type
KNOWNFOLDERID = TGuid;
function SHGetKnownFolderPath(
const rfid: KNOWNFOLDERID;
dwFlags: DWORD;
hToken: THandle;
out ppszPath: PWideChar
): HResult; stdcall; external 'Shell32.dll';
现在,由于此函数是在Vista 中添加的,因此尝试在XP 上调用它会导致失败。因此,我建议使用 CSIDL 函数而不是 Vista 已知的文件夹 API 来处理这个问题。
关于windows - 如何从 Delphi 中的已知文件夹 GUID 获取文件夹路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14802473/