• Home
Name Date Size #Lines LOC

..--

AppScope/06-May-2025-3532

PageImg/06-May-2025-

entry/06-May-2025-1,015907

hvigor/06-May-2025-3836

.gitignoreD06-May-2025133 1212

README_zh.mdD06-May-20255.2 KiB9266

build-profile.json5D06-May-20251.5 KiB6564

hvigorfile.tsD06-May-2025843 225

oh-package.json5D06-May-2025809 2624

ohosTest.mdD06-May-20251 KiB128

README_zh.md

1# 开发用户文件管理器(仅对系统应用开放)
2
3### 介绍
4
5本示例主要展示了自行开发文件管理器与开发设备上下线,使用[@ohos.file.fileAccess](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-fileAccess-sys.md)等,实现了查询设备列表、浏览目录、操作文件或目录、监听设备上下线的功能。该工程中展示的代码详细描述可查如下链接。
6
7- [开发用户文件管理器](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/file-management/dev-user-file-manager.md)
8
9### 效果预览
10
11|主界面|
12|--------------------------------|
13|<img src="PageImg\DevelopingFileManager1.jpeg" style="zoom:33%;" width="400" />|
14
15| 开发用户文件管理器页面                                       |
16| ------------------------------------------------------------ |
17| <img src="PageImg\DevelopingFileManager2.jpeg" style="zoom:33%;" width="400" /> |
18
19| 监听设备上下线页面                                           |
20| ------------------------------------------------------------ |
21| <img src="PageImg\DevelopingFileManager3.jpeg" style="zoom:33%;" width="400" /> |
22
23使用说明:
24
251. 在主界面,可以选择点击DevelopingFileManagerApplication按钮切换到开发用户文件管理器页面,点击ListeningForDeviceOnline/OfflineStatus按钮切换到监听设备上下线页面。
262. 在开发用户文件管理器页面,点击CreateFile按钮,将在指定目录创建一个文件,在日志中打印文件的uri,在页面文本框输出创建成功消息。
273. 在监听用户上下线页面,点击RegisterToMonitorTheDevice按钮,此时开发板将监听外置存储设备的上下线,将U盘插入到开发板,日志将输出“NotifyType: ”与“NotifyUri:”,并将监听成功的结果输出到页面文本框。点击CancelMonitoringTheDevice按钮将取消监听。
28
29### 工程目录
30
31```
32├──entry/src/main
33|	├──ets
34|	|	├──common
35|	|	|	└──Logger.ts 		        				// 日志打印封装类
36|	|	├──entryability
37|	|	|	└──EntryAbility.ets 						// 程序入口类
38|	|	├──entrybackupability
39|	|	|	└──EntryBackupAbility.ets
40|	|	├──filemanager
41|	|	|	├───pages
42|	|	|	|	└──FileManagerApplication.ets 			// 用户文件管理器界面
43|	|	|	|	└──ListeningForDeviceOnline.ets 		// 监听设备上下线界面
44|	|	└──pages
45|	|		└──Index.ets 								// 主界面
46|	├──resources										// 资源文件目录
47```
48
49### 具体实现
50
51* 开发用户文件管理器:
52    * 权限配置和导入模块。 申请ohos.permission.FILE_ACCESS_MANAGERohos.permission.GET_BUNDLE_INFO_PRIVILEGED权限,参见[申请应用权限](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/security/AccessToken/determine-application-mode.md)53    * 导入依赖模块。
54    * 创建一个文件访问助手对象,然后使用该对象获取根目录迭代器,并遍历所有根目录信息。
55    * 使用listfile接口遍历下一级所有文件(目录)的迭代器对象;通过scanfile过滤指定目录,获取满足条件的迭代器对象。
56    * 定义目标目录的 URI 和文件的显示名称,然后使用 [createFile](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-fileAccess-sys.md#createfile)方法创建文件。
57* 开发监听设备上下线:
58    * 权限配置和导入模块。
59    * 导入依赖模块。
60    * 根据[DEVICES_URI](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-fileAccess-sys.md#常量),传入方法registerObserver()中,能监听设备上下线状态。传入方法unregisterObserver()中,能取消监听设备上线,下线状态。
61
62### 相关权限
63
64[ohos.permission.FILE_ACCESS_MANAGER](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionfile_access_manager)
65
66[ohos.permission.GET_BUNDLE_INFO_PRIVILEGED](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionget_bundle_info_privileged)
67
68### 依赖
69
70不涉及
71
72### 约束与限制
73
741.本示例仅支持标准系统上运行,支持设备:RK3568。
75
762.本示例已适配API16版本SDK,版本号:5.1.0.47,镜像版本号:OpenHarmony5.1.0.47。
77
783.本示例需要使用DevEco Studio (5.0.3.910)及以上版本才可编译运行。
79
804.本示例相关权限为system_basic级别,需要配置高权限签名,可参考[申请使用受控权限](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/security/AccessToken/declare-permissions-in-acl.md)81
82### 下载
83
84如需单独下载本工程,执行如下命令:
85
86```
87git init
88git config core.sparsecheckout true
89echo code/DocsSample/CoreFile/UserFile/DevelopingFileManagerApplication > .git/info/sparse-checkout
90git remote add origin https://gitee.com/openharmony/applications_app_samples.git
91git pull origin master
92```