在 Firemonkey 提供了一个跨平台的函数 TPath.GetDownloadsPath来取得该平台的下载目录,但是非常奇怪的是,在 Windows 平台下,取得的下载目录确是:
<span style="color: #0000ff;">interface
<span style="color: #0000ff;">uses
<span style="color: #008000;">{<span style="color: #008000;">$IFDEF MSWINDOWS<span style="color: #008000;">}<span style="color: #000000;">
Winapi.Windows,Winapi.ShlObj,Winapi.KnownFolders,<span style="color: #008000;">{<span style="color: #008000;">$ENDIF<span style="color: #008000;">}<span style="color: #000000;">
System.IOUtils;
<span style="color: #0000ff;">type<span style="color: #000000;">
TPathHelper = <span style="color: #0000ff;">record helper <span style="color: #0000ff;">for<span style="color: #000000;"> TPath
<span style="color: #0000ff;">class <span style="color: #0000ff;">function GetWinDownloadsPath: <span style="color: #0000ff;">string<span style="color: #000000;">; static;
<span style="color: #0000ff;">end<span style="color: #000000;">;
<span style="color: #0000ff;">implementation
<span style="color: #0000ff;">class <span style="color: #0000ff;">function TPathHelper.GetWinDownloadsPath: <span style="color: #0000ff;">string<span style="color: #000000;">;
<span style="color: #008000;">{<span style="color: #008000;">$IFDEF MSWINDOWS<span style="color: #008000;">}
<span style="color: #0000ff;">var<span style="color: #000000;"> Path: PWideChar;
<span style="color: #0000ff;">begin
<span style="color: #0000ff;">if Succeeded(SHGetKnownFolderPath(FOLDERID_Downloads,<span style="color: #800080;">0,Path)) <span style="color: #0000ff;">then<span style="color: #000000;">
Result :=<span style="color: #000000;"> String(Path)
<span style="color: #0000ff;">else Result := <span style="color: #800000;">''<span style="color: #000000;">;
<span style="color: #0000ff;">end<span style="color: #000000;">;
<span style="color: #008000;">{<span style="color: #008000;">$ELSE<span style="color: #008000;">}
<span style="color: #0000ff;">begin<span style="color: #000000;">
Result := <span style="color: #800000;">''<span style="color: #000000;">;
<span style="color: #0000ff;">end<span style="color: #000000;">;
<span style="color: #008000;">{<span style="color: #008000;">$ENDIF<span style="color: #008000;">}
<span style="color: #0000ff;">end.