DELPHI开发APP回忆录二安卓与pc端路径的选择
路径方法 | Win | Android |
---|---|---|
GetHomePath | C:\Users\ggggcexx\AppData\Roaming | /data/user/0/com.stella.scan/files/ |
GetDocumentsPath | C:\Users\ggggcexx\Documents | /data/user/0/com.embarcadero.FirstAidExpert_FMX_D11/files |
GetSharedDocumentsPath | C:\Users\Public\Documents | /storage/emulated/0/Documents |
GetLibraryPath | C:\MyFiles\OrangeUIProduct\项目名称\APP\Win32\Debug\ | /data/app/com.embarcadero.FirstAidExpert_FMX_D11-wlgPkLmXf6nZlWnaSyFsnw==/lib/arm |
GetCachePath | C:\Users\ggggcexx\AppData\Local | /data/user/0/com.embarcadero.FirstAidExpert_FMX_D11/cache |
GetPublicPath | C:\ProgramData | /storage/emulated/0/Android/data/com.embarcadero.FirstAidExpert_FMX_D11/files |
GetPicturesPath | C:\Users\ggggcexx\Pictures | /storage/emulated/0/Android/data/com.embarcadero.FirstAidExpert_FMX_D11/files/Pictures |
GetSharedPicturesPath | C:\Users\Public\Pictures | /storage/emulated/0/Pictures |
GetCameraPath | C:\Users\ggggcexx\Pictures | /storage/emulated/0/Android/data/com.embarcadero.FirstAidExpert_FMX_D11/files/DCIM |
GetSharedCameraPath | C:\Users\Public\Pictures | /storage/emulated/0/DCIM |
GetDownloadsPath | C:\Users\ggggcexx\Downloads | /storage/emulated/0/Android/data/com.embarcadero.FirstAidExpert_FMX_D11/files/Download |
GetSharedDownloadsPath | C:\Users\Public\Downloads | /storage/emulated/0/Download |
Delphi 跨平台路径操作 TPath | ||
Delphi 有一个 System.IOUtils 单元, | ||
里面有一个 TPath,是一个跨平台的路径操作结构体, | ||
里面有获取常用路径的静态方法(不需要创建直接可以调用的方法)。 |
GetDocumentsPath 就是应用的文档目录(私有存储空间),
如果你要保存文件,一般将文件保存在文档目录。
在 Android 下,GetHomePath 和 GetDocumentsPath 都指向同一个目录
GetCachePath 是缓存目录,可以保存比如临时下载的网络图片,
手机上的清除应用缓存就是清理的这个目录。
还有一些带 Shared 的目录,
GetSharedDocumentsPath、GetSharedPicturesPath、GetSharedCameraPath、GetSharedDownloadsPath,
这些则是可以与其它应用共享的目录,都保存在外部存储空间中,
其他应用可以访问到它们。
路径分隔符
需要注意的是,安卓系统下面路径分隔符和 Windows 下不一样,
Windows 下是\,Anroid 下面是/,
那么我们平时写代码要拼路径的时候,该怎么办呢?
Delphi 已经帮我们考虑好了,
大家统一用常量 PathDelim 即可。
比如你要将当前登录用户的账号密码保存到 Config.ini 中,
那么你就可以通过 TPath.GetDocumentsPath+PathDelim+’Config.ini’来访问它。
使用方法简单
UserPath := System.IOUtils.TPATH.GetDocumentsPath + PathDelim + 'UserData.json';
GroupPath := System.IOUtils.TPATH.GetDocumentsPath + PathDelim + 'GroupTable.json';
PathDelim 代表PC与安卓的动态斜杠因为两个客户端文件路径的斜杠是不一致的后面就加上报错的文件名