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

Guy*_*ush 0 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);
Run Code Online (Sandbox Code Playgroud)

如何使用此方法获取"下载"文件夹?

Rob*_*edy 6

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

您需要使用带有标志的" 已知文件夹 " 的新概念FOLDERID_Downloads.如何做到这一点已经在Stack Overflow的其他地方得到了回答.