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与安卓的动态斜杠因为两个客户端文件路径的斜杠是不一致的后面就加上报错的文件名
相关文章:
DELPHI开发APP回忆录二安卓与pc端路径的选择
路径方法WinAndroidGetHomePathC:\Users\ggggcexx\AppData\Roaming/data/user/0/com.stella.scan/files/GetDocumentsPathC:\Users\ggggcexx\Documents/data/user/0/com.embarcadero.FirstAidExpert_FMX_D11/filesGetSharedDocumentsPathC:\Users\Public\Documents/storage/emu…...
井盖位移传感器怎么监测井盖安全
井盖在城市基础设施建设中扮演着不可或缺的角色,虽然看似并不起眼但确实是城市规划中一个重要的组成部分。在城市规划建设之初都需要首先考虑排水系统的设计,而井盖作为排水系统的一个重要组成部分,一旦出现问题便会造成交通中断或者环境受影…...
从零开始,用Docker-compose打造SkyWalking、Elasticsearch和Spring Cloud的完美融合
🎏:你只管努力,剩下的交给时间 🏠 :小破站 "从零开始,用Docker-compose打造SkyWalking、Elasticsearch和Spring Cloud的完美融合 前言准备工作编写docker-compose.yml文件为什么使用本机ip为什么skywa…...
设计模式——状态模式介绍
状态模式是一种行为设计模式,它允许对象在内部状态改变时改变它的行为。它基于对象的内部状态而改变其行为,看起来好像修改了对象的类。 状态模式的关键组件有三个:上下文(Context)、状态(State)和具体状态(Concrete State)。 下面是一个例…...
Java 多线程之 CAS(Compare and Set),实现无锁优化,自旋锁/乐观锁
文章目录 一、概述二、JDK 的 Unsafe 类三、ABA 问题 一、概述 CAS(Compare and Swap)是一种并发编程中的原子操作(synchronized 也使用了 CAS),用于实现多线程环境下的同步和数据共享。CAS提供了一种高效的并发控制机…...
python之pyqt专栏1-环境搭建
#python pyqt# python:3.11.6 pycharm:PyCharm Community Edition 2023.2.5 pyqt6 python安装 官网下载:Python Releases for Windows | Python.org pycharm社区版安装 官网地址:Download PyCharm: Python IDE for Professional…...
Spring Cloud LoadBalancer 简单介绍与实战
前言 本文为SpringCloud的学习笔记,如有错误,希望各位高手能指出,主要介绍SpringCloudLoadBalancer的基本概念和实战 文章目录 前言什么是LoadBalancer负载均衡分类服务端负载均衡客户端负载均衡服务端负载均衡和客户端负载均衡的优缺点 常见…...
私域流量解决方案分享
...
Scala---WordCount
一、创建Maven项目导入pom.xml文件 安装Maven仓库管理工具,版本要求是3.2版本以上。新建Maven项目,配置pom.xml。导入必要的包。 二、Spark-Scala版本的WordCount 1.val conf new SparkConf() 2.conf.setMaster("local") 3.conf.setAppNam…...
GTC2023全球流量大会蓄势待发,菊风在7B57展位等你!
第六届 GTC 全球流量大会(以下简称 GTC2023)将于12月5日- 6日,在深圳福田会展中心7&8号馆举办。 据悉,本届大会将是历届以来规模最大、参与人数最多、跨境出海资源最丰富的一次行业盛会。7、8 号馆共 15000 平方米&am…...
喜讯!云起无垠成为国家信息安全漏洞库(CNNVD)技术支撑单位
近日,云起无垠凭借其在漏洞挖掘、漏洞检测以及漏洞修复等领域的卓越表现,荣获“国家信息安全漏洞库(CNNVD)技术支撑单位等级证书(三级)”,正式成为CNNVD技术支撑单位。 中国国家信息安全漏洞库&…...
cc linux用root用户执行chmod 777 -R ./提示 Operation not permitted怎么办?
如果你作为 root 用户执行 chmod 777 -R ./ 命令时收到 “Operation not permitted” 错误,可能有几个原因: 不可更改 (Immutable) 文件属性: 文件可能被设置为不可更改。即使是 root 用户也不能修改这些文件的权限。使用 lsattr 命令查看文件…...
scrapy框架流程
1、Scrapy从Spider子类中提取start_url,然后构造为request请求对象 2、将request请求对象传递给爬虫中间件 3、将request请求对象传递给Scrapy引擎(核心代码) 4、将request请求对象传递给调度器(它负责对多个request安排,好比交…...
802.11 帧的Reason Code 位和Status Code 位
Reason Code 位 当对方不适合加入网络时,工作站会送出 Disassociation(解除连接)或 Deauthentication(解除身份认证)帧作为应答。这些帧当中包含一个长度 16bit 的 Reason Code(原因代码)位&am…...
骨传导能保护听力吗?为什么说骨传导耳机可以保护听力?
由于骨传导耳机的特殊传声方式,是可以保护听力的。 首先了解下骨传导耳机的传声方式是什么: 骨传导耳机是通过骨骼震动传导技术,将声音传至颅骨,然后通过颅骨传导到内耳,直接刺激听觉神经,使人感知到声音…...
【iOS】实现评论区展开效果
文章目录 前言实现行高自适应实现评论展开效果解决cell中的buttom的复用问题 前言 在知乎日报的评论区中,用到了Masonry行高自适应来实现评论的展开,这里设计许多控件的约束问题,当时困扰了笔者许久,特此撰写博客记录 实现行高自…...
POE交换机——电源解决方案-升压控制器\降压控制器\中高压降压转换器
PoE是一种有线以太网供电技术,使用于数据传输的网线同时具备直流供电的能力,PoE供电具有可靠、连接简捷、标准统一的优势。越来越多的工业物联网设备开始采用PoE供电, 如IP电话、网络视频监控以及无线以太网设备等。 PoE交换机是一种用于提供…...
[C/C++]数据结构 循环队列
前言: 队列是一种具有先进先出特性的结构,但是当数据出队列以后,前面的空间就无法再次利用了,循环队列就可以解决这个问题 一:概念及结构: 1.循环队列概念 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队…...
Cache学习(2):Cache结构 命中与缺失 多级Cache结构 直接映射缓存
1 Cache名词解释 命中(hit): CPU要访问的数据在Cache中有缓存缺失(miss): CPU要访问的数据在Cache中没有缓存Cache Size:Cache的大小,代表Cache可以缓存最大数据的大小Cache Line&a…...
vue前端前端页面权限验证方式
在Vue应用中使用Vuex(Vue的状态管理库)来存储用户组(user group)和角色(roles)信息是一种合理的做法,特别是在涉及到权限管理和用户身份的情况下。Vuex提供了一个集中式的状态管理方案ÿ…...
Casdoor开源身份认证平台:基于OAuth 2.0/OIDC的统一登录解决方案
1. 项目概述:一个开源的统一身份认证与单点登录平台如果你正在为一个新项目搭建用户系统,或者正在为手头一堆各自为政的应用(比如内部的OA、CRM、知识库)如何统一登录而头疼,那么你很可能需要了解Casdoor。简单来说&am…...
保姆级教程:用Anaconda为QMT创建Python 3.6.8虚拟环境,避免版本冲突
量化交易必备:Anaconda虚拟环境精准配置Python 3.6.8全攻略 当你在深夜调试QMT策略时,突然发现因为Python版本冲突导致整个开发环境崩溃——这种经历足以让任何量化开发者抓狂。本文将带你彻底解决这个痛点,不仅教你如何创建完美的Python 3.6…...
破除 AI 替代焦虑:2026 全球核心留学地 CS 专业就业 ROI 与产业前景真实对比
在当前的留学规划大环境中,无数家庭正陷入一种深度的集体焦虑:一方面,计算机科学(CS)及其相关工程专业依然是留学申请中竞争最激烈、学费最昂贵的“王牌赛道”;另一方面,随着生成式 AIÿ…...
FLUX.1-dev效果实测:8K输出下4090D单卡耗时仅142秒,显存占用稳定23.7G
FLUX.1-dev效果实测:8K输出下4090D单卡耗时仅142秒,显存占用稳定23.7G 1. 开篇:重新定义图像生成的旗舰体验 当你第一次看到FLUX.1-dev生成的图像时,很难相信这是AI绘制的作品。那种影院级的光影质感、逼真的皮肤纹理、精准的光…...
VSCode低代码插件配置避坑指南:87%新手踩过的5个致命错误,第3个导致CI/CD流水线崩溃
更多请点击: https://intelliparadigm.com 第一章:VSCode低代码插件配置避坑指南:87%新手踩过的5个致命错误,第3个导致CI/CD流水线崩溃 插件版本与核心运行时不兼容 低代码插件(如 VS Code 的 LowCode Studio 或 App…...
神经机器翻译技术演进与工程实践
1. 神经机器翻译的演进历程机器翻译作为人工智能领域最具挑战性的任务之一,其发展历程经历了三个主要阶段。最早可追溯至上世纪50年代,当时计算机科学家们就梦想着实现自动语言转换。早期的规则式机器翻译(RBMT)系统完全依赖语言学专家手工编写的转换规则…...
Intel Realsense D435在Windows上从零配置到显示彩色图像(VS2022 + OpenCV 4.8 + SDK 2.54)
Intel Realsense D435在Windows平台下的完整开发指南:从环境配置到彩色图像显示 1. 开发环境准备与SDK安装 在开始使用Intel Realsense D435深度相机进行开发前,我们需要搭建一个稳定的开发环境。Windows平台下推荐使用Visual Studio 2022作为主要开发工…...
GBDT概率模型在空气污染预测中的应用实践
1. 项目背景与核心价值空气污染预测一直是环境科学和公共健康领域的重要课题。传统预测方法往往只能给出确定性结果,而概率预测模型则能提供更丰富的风险信息。这个项目构建的概率预测模型,能够量化未来出现污染天气的可能性,为决策者提供更科…...
TX412 双极锁存型霍尔位置传感器
产品特点 ● 双极锁存型霍尔效应传感器 ● 宽的工作电压范围: 3.8V~30V ● 集电极开路输出 ● 最大输出灌电流:50mA ● 电源反极性保护 ● 工作温度:-40℃~125℃ ● 封装形式: SOT23-3 典型应用 ● 直流无刷电机 ● 位置控制 ● 安全报警装置 ● 转速检测…...
STM32F103用IO口模拟SPI驱动CH376读写U盘,保姆级移植教程(附完整源码)
STM32F103通过IO模拟SPI驱动CH376实现U盘文件读写的实战指南 在嵌入式系统开发中,经常需要实现数据存储功能。对于STM32这类资源有限的微控制器而言,直接操作U盘进行文件读写是一个极具实用价值的技术方案。本文将详细介绍如何利用STM32F103的普通IO口模…...
