开发者可以使用Device File Browser,在DevEco Studio上如PC端操作一样,进行文件新建、删除、上传、下载等操作,而无需使用命令行,提升开发效率,当前支持普通文件视图与应用沙箱视图两种模式。
使用场景
- 查看设备上的文件列表及基本信息。
- 在设备上搜索文件及文件夹。
- 在设备上新建、删除文件。
- 从PC本地上传文件到设备上,从设备上下载文件到PC本地。
使用约束
- 已通过USB连接设备。
- 不支持访问无权限目录,新建、删除、上传、下载文件受设备权限约束。
- 不支持文件拖拽。
- 不支持文件修改。如需对文件进行修改,需下载至PC,在本地修改后再上传至设备。
- 普通文件视图不支持对应用沙箱内文件及文件夹的新建、上传操作。
- 应用沙箱视图不支持模拟器设备。
- 只支持访问调试态应用的沙箱数据目录。
- 应用需为debug应用且配置ohos.permission.INTERNET权限时才可使用沙箱视图查看文件结构、对应用沙箱内的文件夹的上传、下载操作。
操作步骤
-
在菜单栏单击View > Tool Windows > Device File Browser,打开Device File Browser。
-
从下拉列表中选择设备(设备需已连接)。
-
选择设备后,显示文件/文件夹列表,可进行以下操作:
-
右键单击目录或文件,进行新建/删除操作。
-
右键单击Save As将选定的文件或目录下载到PC上,右键单击Upload将PC上的文件上传到设备指定目录。
如果需要查看数据库文件,可以通过该方式将数据库文件(路径举例:data > app > el2 > 100 > database >项目名称 > entry > rdb > 数据库文件)下载到PC上,再通过其他工具进行可视化查看。
-
焦点在Device File Browser框中,输入字母可以快速进行搜索。
-
双击某个文件可在DevEco Studio中将其打开。打开文件会默认下载文件到临时目录(%USER%\AppData\Local\Huawei\DevecoStudio{版本号}\device-file-browser{设备名称}{设备上的文件路径}),关闭文件后,临时文件将被删除。
-
如果通过命令行方式上传文件到设备后,需要右键对应文件夹,选择同步后才可以在Device File Browser窗口中显示该文件。
-
普通文件视图
普通文件视图将按照设备的真实物理路径显示当前设备上的文件结构。
公共目录
以下公共目录支持访问、文件上传与下载。
- /storage/media/100/local/files/Docs
- /storage/media/100/local/files/Photo
应用沙箱视图
沙箱视图基于FTP协议,当需要以沙箱视图查看应用的文件结构时,需在module.json5文件内配置ohos.permission.INTERNET开启网络权限。
"requestPermissions": [
{
"name":"ohos.permission.INTERNET"
}
]
应用沙箱视图将按照应用的沙箱文件路径显示应用的沙箱文件结构,支持数据目录的文件目录读写操作。
命令行方式访问应用沙箱
真机设备中内置了bftpd二进制软件,可以通过命令行的方式访问debug应用的[沙箱目录]。
- 在工程主模块下的module.json5文件下增加网络权限。
"requestPermissions": [
{"name": "ohos.permission.INTERNET"}
]
- 在设备侧(hdc shell)启动应用的bftpd服务,并查询端口号是否启动成功。
$ aa process -b {bundleName} -a {abilityName} -p "/system/bin/bftpd -D -p {port}" -S
start native process successfully.
$ ps -ef | grep bftpd
20020143 12254 613 0 11:52:53 ? 00:00:00 bftpd -D -p 9021 // 对应端口号的bftpd服务启动成功
shell 13035 11901 10 11:54:44 ? 00:00:00 grep bftpd
- bundleName:调试应用包名。
- abilityName:应用的ability名称。
- port:可用端口号。
- 通过命令访问沙箱文件目录,创建目录文件,删除指定目录下的文件。
$ ftpget -p {port} -P guest -u anonymous localhost -l /data/storage/el2/base // 查看应用沙箱下/el2/base目录文件(返回文件全部信息)
$ ftpget -p {port} -P guest -u anonymous localhost -L /data/storage/el2/base // 查看应用沙箱下/el2/base目录文件(仅返回文件名)
$ ftpget -p {port} -P guest -u anonymous localhost -M /data/storage/el2/base/test // 在应用沙箱下/el2/base目录下创建test目录
$ ftpget -p {port} -P guest -u anonymous localhost -d /data/storage/el2/base/test.txt // 在应用沙箱下/el2/base目录下删除test.txt文件
$ ftpget -p {port} -P guest -u anonymous localhost -D /data/storage/el2/base/test // 在应用沙箱下/el2/base目录下删除test目录(仅支持删除空目录)
- 通过命令往应用沙箱目录中发送文件,从沙箱目录中下载文件到本地。(/data/local/tmp/作为中转目录)
$ hdc file send test.txt /data/local/tmp/test.txt // 先发送文件到设备data/local/tmp目录
$ ftpget -p {port} -P guest -u anonymous localhost -s /data/local/tmp/test.txt /data/storage/el2/base/test.txt // 再推送到应用沙箱目录
$ ftpget -p {port} -P guest -u anonymous localhost -g /data/local/tmp/test.txt /data/storage/el2/base/test.txt // 先下载到设备的data/local/tmp目录
$ hdc file recv /data/local/tmp/test.txt test.txt // 再从设备中获取