HarmonyOS 鸿蒙Next系统中是否存在一个应用可访问且 hdc 也可访问的公共目录?
HarmonyOS 鸿蒙Next系统中是否存在一个应用可访问且 hdc 也可访问的公共目录? 您好,
我在 HarmonyOS 应用开发过程中,有一个需求:
希望能找到一个 应用内部可以正常读写,同时也能通过 hdc 命令访问(推送 / 读取) 的公共目录,用于在开发或测试阶段传输文件。
目前我尝试了以下几种路径:
应用沙箱目录
- 应用可访问 ✅
- hdc 推送失败 ❌(提示 permission denied)
公共媒体目录 /storage/media/100/local/ /storage/media/100/local/files/ hdc 推送失败 ❌(提示 permission denied)
临时目录
- hdc 可推送 ✅
- 应用无访问权限 ❌
我的需求是:
想要一个路径,能同时满足
-
hdc 命令可推送文件;
-
应用内代码可以正常读写;
-
无需 root 或系统签名。
请问鸿蒙系统是否有这样的 官方推荐路径?
如果没有,请问在正式开发或调试阶段,官方推荐的 hdc 与应用间文件交换方式 是哪一种?
谢谢!
更多关于HarmonyOS 鸿蒙Next系统中是否存在一个应用可访问且 hdc 也可访问的公共目录?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
有的,应用沙箱就满足你的需求。
命令行方式访问应用沙箱-访问设备文件-应用调试-编写与调试应用 - 华为HarmonyOS开发者
从 API 15 开始,支持通过 hdc 工具访问 debug 应用的沙箱目录,推荐开发者使用此种方式。更多关于命令行工具 hdc 的说明请参见 hdc工具使用指导。
可以完成以下操作:
a. 通过 hdc 命令访问沙箱文件目录,创建目录文件,删除指定目录下的文件。
b. 通过 hdc 命令往应用沙箱目录中发送文件,从沙箱目录中下载文件到本地计算机。
更多关于HarmonyOS 鸿蒙Next系统中是否存在一个应用可访问且 hdc 也可访问的公共目录?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
你可以联机看一下,实际的路径
具体的做法为使用DevEco Studio的File Browser查看。
之后再拷贝该路径,如下图

HarmonyOS Next系统中,应用可通过context.filesDir访问私有目录,hdc可通过hdc file recv/send访问应用私有目录。应用间共享文件可使用FileShare扩展能力。
在HarmonyOS Next中,确实存在一个满足你需求的官方推荐路径:应用的外部文件目录。
具体路径为:/storage/media/100/local/files/{your_package_name}/
这个目录的设计目的就是为了兼顾应用访问和开发调试。其特点如下:
- 应用可访问:你的应用可以通过标准的文件API(如
ohos.file.fs)对这个目录进行读写操作,权限是默认拥有的。 - hdc可访问:你可以使用
hdc file send命令将文件推送到此目录,或使用hdc file recv从此目录拉取文件。这是鸿蒙开发者工具链支持的标准调试操作。 - 无需特殊权限:该目录在应用安装时自动创建,应用具备其所属目录的访问权,hdc在调试模式下也拥有相应权限,不需要root或系统签名。
操作示例:
- 应用内读写:使用
getExternalFilesDir()或类似接口获取此目录的File对象进行操作。 - 通过hdc推送文件:
hdc file send {本地文件路径} /storage/media/100/local/files/{包名}/{目标文件名} - 通过hdc拉取文件:
hdc file recv /storage/media/100/local/files/{包名}/{设备端文件名} {本地保存路径}
这个目录是HarmonyOS Next为应用与外部(包括调试工具)进行文件交换设计的主要官方路径。它平衡了数据隔离(每个应用在自己的子目录下)和调试便利性。
你之前尝试的/storage/media/100/local/或/storage/media/100/local/files/是父目录,其访问权限受到更严格的管控,因此hdc操作会失败。必须精确到你的应用包名对应的子目录。
因此,对于你的开发调试和文件传输需求,直接使用上述格式的外部文件目录即可。

