Delphi - 使用SHGetSpecialFolderPath获取“我的下载”文件夹

时间:2015-02-25 03:40:55

标签: windows delphi directory

我正在使用SHGetSpecialFolderPath使用Delphi 7检索一些Windows特殊文件夹。以下是一些代码示例:

const
  CSIDL_DESKTOP    = $0000;
  CSIDL_PERSONAL   = $0005;
  CSIDL_MYPICTURES = $0027;
  CSIDL_MYMUSIC    = $000d;
  CSIDL_MYVIDEO    = $000e;
  CSIDL_WINDOWS    = $0024;
  CSIDL_SYSTEM     = $0025;

function GetSpecialFolderPath(Folder: Integer; ForceDir: Boolean): string;
// Uses ShlObj
var
  Path: array [0..255] of char;
begin
  SHGetSpecialFolderPath(0, @Path[0], Folder, ForceDir);
  Result := Path;
end;

edtFolder.Text := GetSpecialFolderPath(CSIDL_DESKTOP, False);

我如何获得"下载"用这种方法的文件夹?

1 个答案:

答案 0 :(得分:6)

您无法使用该API获取该目录。它早于任何OS指定的下载文件夹。

您需要使用" known folders"的新概念。改为使用标志FOLDERID_Downloads。如何做到这一点已经回答elsewhere on Stack Overflow