[函数] Delphi FMX Windows 取得下载目录

在 Firemonkey 提供了一个跨平台的函数 TPath.GetDownloadsPath 来取得该平台的下载目录,但是非常奇怪的是,在 Windows 平台下,取得的下载目录确是:

C:\Users\<username>\AppData\Local (官方文件

而不是

C:\Users\<username>\Downloads

也许 EMB 想的是 App 沙箱做法,但如果想要取得 C:\Users\<username>\Downloads 这个目录该如何做呢?

可以扩展 TPath 功能,参考如下:

unit System.IOUtils.Helper;

interface

uses
  {$IFDEF MSWINDOWS}
  Winapi.Windows,
  Winapi.ShlObj,
  Winapi.KnownFolders,
  {$ENDIF}

  System.IOUtils;

type
  TPathHelper = record helper for TPath
    class function GetWinDownloadsPath: string; static;
  end;

implementation

class function TPathHelper.GetWinDownloadsPath: string;
{$IFDEF MSWINDOWS}
var Path: PWideChar;
begin
     if Succeeded(SHGetKnownFolderPath(FOLDERID_Downloads, 0, 0, Path)) then
          Result := String(Path)
     else Result := ‘‘;
end;
{$ELSE}
begin
     Result := ‘‘;
end;
{$ENDIF}

end.

使用方法:

uses System.IOUtils.Helper;

var DownloadPsth: String;
begin
  DownloadPath := TPath.GetWinDownloadsPath;
end;
时间: 2024-12-23 10:53:18

[函数] Delphi FMX Windows 取得下载目录的相关文章

Delphi FMX 手机目录提取,把IO相关的都提取到System.IoUtils单元中

Delphi把IO相关的都提取到System.IoUtils单元中.路径操作使用TPath的方法都很方便.uses System.IoUtils TPath.GetTempPath//临时目录TPath.GetCameraPath//照相机目录(照片/录像)TPath.GetMusicPath//音乐目录TPath.GetDownloadsPath//下载目录……如果使用TPath类的静态方法那么代码就是跨平台的,在Windows,Mac,iOS,Android上都能用.如果仅仅对Android

Linux和Windows的遍历目录下所有文件的方法对比

首先两者读取所有文件的方法都是采用迭代的方式,首先用函数A的返回值判断目录下是否有文件,然后返回值合法则在循环中用函数B直到函数B的返回值不合法为止.最后用函数C释放资源. 1.打开目录 #include <sys/types.h> #include <dirent.h> DIR *opendir(const char *name); 先看Linux的,返回的是DIR*,因此出错时返回NULL(0).而这里不用关心DIR结构具体定义,只需要知道是对它进行操作(注意:DIR不是保存文

delphi TTreeView组件遍历磁盘目录

TTreeView组件遍历磁盘目录 实例说明 TTreeView组件是一个以分枝结构或者说树状结构显示数据的组件,以该组件显示数据具有较好的等级关系和逻辑层次,并且易于操作.在组件中显示的数据结构与系统中目录的结构非常相似,所以本例使用该组件设计一个磁盘目录查看工具.运行本例,在窗口右边选择目录或路径就可以在TTreeView组件中列出所有选择目录中的子目录和文件.实例运行效果如图1所示. 图1  TTreeView组件遍历磁盘目录 思路与技术 磁盘中的目录结构就像TTreeView组件中显示的

80个Python经典资料(教程+源码+工具)汇总——下载目录 ...

原文转自:http://bbs.51cto.com/thread-935214-1.html 大家好,51CTO下载中心根据资料的热度和好评度收集了80个Python资料,分享给Python开发的同学.内容包括1个Python专题.66个学习资料.7套Python源码和6个相关软件.附件较多,无法一一分享,在此大家整理一个下载目录了,可以保存以备后用,需要时可选择性下载. 附件下载地址:http://down.51cto.com/data/432858 附件内容部分预览: [专题推荐]Pytho

php函数 PHP程序开发参考手册目录

第3章 数组函数库3.1 array_change_key_case函数——返回字符串键名全为小写或大写的数组3.2 array_chunk函数——将一个数组分割成多个数组3.3 array_combine函数——合并数组3.4 array_count_values函数——统计数组中的元素值3.5 array_diff_assoc函数——带索引检查计算数组的差集3.6 array_diff_uassoc函数——用回调函数做索引检查来计算数组的差集3.7 array_diff函数——计算数组的差集

在Linux下挂载Windows系统共享目录

在Linux下挂载Windows系统共享目录 默认情况下,Linux服务器会装有samba-client,但是没有装samba-server.但是访问Windows系统共享,安装有samba-client就可以了. [[email protected] ~]# rpm -qa | grep samba samba-3.6.23-14.el6_6.x86_64 samba-client-3.6.23-14.el6_6.x86_64 samba-common-3.6.23-14.el6_6.x86_

php windows扩展下载地址

分享一下PHP Windows所有可以找到的扩展索引资源:PHP 5.2/5.3的Windows扩展索引站点:在这里你可以找到诸如php_oci8.dll, php_memcache.dll, php_mongo.dll, php_apc.dll等常用的Windows扩展dll文件,也能找到一些相对冷门但是也很实用的php扩展,如php_oauth.dll, php_solr.dll等扩展http://downloads.php.net/pierre/  PHP 5.3/5.4/5.5的Wind

.NET 控制Windows文件和目录访问权限研究(FileSystemAccessRule)

前一段时间学习了.net 控制windows文件和目录权限的相关内容,期间做了一些总结.想把这方面的研究跟大家分享,一起学习.其中不免得有些用词不太标准的地方,希望大家留言指正留言,我加以修改. 首先,我们利用一个方法作为示例: /// <summary> /// 为指定用户组,授权目录指定完全访问权限 /// </summary> /// <param name="user">用户组,如Users</param> /// <par

获取Windows系统特殊性目录路径

获取Windows系统特殊性目录路径 uses ShlObj 获取方法: function GetPath(FID: Integer): string;var  pidl: PItemIDList;  path: array[0..MAX_PATH] of Char;begin  SHGetSpecialFolderLocation(0, FID, pidl);  SHGetPathFromIDList(pidl, path);  Result := path;end; 参数可以为下面这些: 1