a6a75950创建于 16 天前历史提交
文件最后提交记录最后更新时间
1 年前
1 年前
1 年前
16 天前
1 年前
1 年前
23 天前
1 年前
16 天前
1 年前
README

开发用户文件管理器(仅对系统应用开放)

介绍

本示例主要展示了自行开发文件管理器与开发设备上下线,使用@ohos.file.fileAccess等,实现了查询设备列表、浏览目录、操作文件或目录、监听设备上下线的功能。该工程中展示的代码详细描述可查如下链接。

效果预览

主界面
开发用户文件管理器页面
监听设备上下线页面

使用说明:

  1. 在主界面,可以选择点击DevelopingFileManagerApplication按钮切换到开发用户文件管理器页面,点击ListeningForDeviceOnline/OfflineStatus按钮切换到监听设备上下线页面。
  2. 在开发用户文件管理器页面,点击CreateFile按钮,将在指定目录创建一个文件,在日志中打印文件的uri,在页面文本框输出创建成功消息。
  3. 在监听用户上下线页面,点击RegisterToMonitorTheDevice按钮,此时开发板将监听外置存储设备的上下线,将U盘插入到开发板,日志将输出“NotifyType: ”与“NotifyUri:”,并将监听成功的结果输出到页面文本框。点击CancelMonitoringTheDevice按钮将取消监听。

工程目录

├──entry/src/main
|	├──ets
|	|	├──common
|	|	|	└──Logger.ts 		        				// 日志打印封装类
|	|	├──entryability
|	|	|	└──EntryAbility.ets 						// 程序入口类
|	|	├──entrybackupability
|	|	|	└──EntryBackupAbility.ets   
|	|	├──filemanager
|	|	|	├───pages
|	|	|	|	└──FileManagerApplication.ets 			// 用户文件管理器界面
|	|	|	|	└──ListeningForDeviceOnline.ets 		// 监听设备上下线界面
|	|	└──pages
|	|		└──Index.ets 								// 主界面
|	├──resources										// 资源文件目录

具体实现

  • 开发用户文件管理器:
    • 权限配置和导入模块。 申请ohos.permission.FILE_ACCESS_MANAGER和ohos.permission.GET_BUNDLE_INFO_PRIVILEGED权限,参见申请应用权限
    • 导入依赖模块。
    • 创建一个文件访问助手对象,然后使用该对象获取根目录迭代器,并遍历所有根目录信息。
    • 使用listfile接口遍历下一级所有文件(目录)的迭代器对象;通过scanfile过滤指定目录,获取满足条件的迭代器对象。
    • 定义目标目录的 URI 和文件的显示名称,然后使用 createFile方法创建文件。
  • 开发监听设备上下线:
    • 权限配置和导入模块。
    • 导入依赖模块。
    • 根据DEVICES_URI,传入方法registerObserver()中,能监听设备上下线状态。传入方法unregisterObserver()中,能取消监听设备上线,下线状态。

相关权限

ohos.permission.FILE_ACCESS_MANAGER

ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

依赖

不涉及

约束与限制

1.本示例仅支持标准系统上运行,支持设备:RK3568。

2.本示例已适配API16版本SDK,版本号:5.1.0.47,镜像版本号:OpenHarmony5.1.0.47。

3.本示例需要使用DevEco Studio (5.0.3.910)及以上版本才可编译运行。

4.本示例相关权限为system_basic级别,需要配置高权限签名,可参考申请使用受控权限

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo code/DocsSample/CoreFile/UserFile/DevelopingFileManagerApplication > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master