| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| AppScope/ | 06-May-2025 | - | 35 | 32 | ||
| PageImg/ | 06-May-2025 | - | ||||
| entry/ | 06-May-2025 | - | 1,087 | 973 | ||
| hvigor/ | 06-May-2025 | - | 38 | 36 | ||
| .gitignore | D | 06-May-2025 | 133 | 12 | 12 | |
| README_zh.md | D | 06-May-2025 | 7.7 KiB | 102 | 74 | |
| build-profile.json5 | D | 06-May-2025 | 1.5 KiB | 66 | 65 | |
| hvigorfile.ts | D | 06-May-2025 | 843 | 22 | 5 | |
| oh-package.json5 | D | 06-May-2025 | 809 | 26 | 24 | |
| ohosTest.md | D | 06-May-2025 | 1,006 | 12 | 9 |
README_zh.md
1# 用户文件uri介绍 2 3### 介绍 4 5本示例主要展示了有关用户文件uri的功能,使用DocumentViewPicker接口 、AudioViewPicker接口、fileAccess模块、fs模块、photoAccessHelper模块、userFileManager模块、createFileAccessHelper等,实现了获取文档类uri、获取媒体文件uri、通过uri复制文件的功能。该工程中展示的代码与权限等详细描述可查如下链接。 6 7- [用户文件uri介绍](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/file-management/user-file-uri-intro.md) 8 9### 效果预览 10 11|主页| 12|:------------------------------:| 13|<img src="PageImg\UserFileURI.jpeg" alt="主页" width="400" />| 14 15使用说明: 16 171. 在主界面,可以选择点击ReadDocumentUri、ReadMediaUri、CopyAFile按钮使用对应的功能。 182. 点击ReadDocumentUri按钮,将在指定目录创建一个文件,在日志中打印文件的uri,重命名该文件,再次打印该文件的uri,成功后将输出“ReadDocumentUriSuccess”到主页文本框,在Deveco日志中搜索“rename success, renameUri”,有对应的日志。 193. 点击ReadMediaUri按钮,拉起PhotoAccessHelper的PhotoViewPicker选择已有媒体文件或拍摄一个媒体文件,读取该媒体文件的uri已经基本信息,并输出“ReadMediaUriSuccess”到主页文本框,在Deveco日志中搜索“PhotoViewPicker.select successfully”,有对应的日志。 204. 点击CopyAFile按钮,复制指定文件到指定目录,并输出”CopyAFileSuccess“到主页文本框,在Deveco日志中搜索“copyFile success, fileUr“,有对应的日志。 215. 点击SelectDocumentFile按钮,可以调用Picker选择查看创建的文档类文件与复制的文档类文件,直观查看创建和复制结果。 22 23### 工程目录 24 25``` 26├──entry/src/main 27| ├──ets 28| | ├──common 29| | | └──Logger.ts // 日志打印封装类 30| | | └──PermissionUtils.ets // 权限申请封装类 31| | ├──entryability 32| | | └──EntryAbility.ets // 程序入口类 33| | ├──entrybackupability 34| | | └──EntryBackupAbility.ets 35| | └──pages // 页面文件 36| | └──Index.ets // 主界面 37| ├──resources // 资源文件目录 38``` 39 40### 具体实现 41 42* 文档类uri获取方式: 43 * 通过[文件选择器(FilePicker)](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-file-picker.md#ohosfilepicker-选择器)的DocumentViewPicker接口选择或保存文件,返回选择或保存的文件uri。 44 * 通过[文件选择器(FilePicker)](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-file-picker.md#ohosfilepicker-选择器)的AudioViewPicker接口选择或保存文件,返回选择或保存的文件uri。 45 * 通过[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)获取文件uri,使用获取到的文件uri进行重命名操作。 46 * 通过[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)获取文档类目录下的文件得到对应文件的FileInfo对象,此对象中就包含对应文件或者目录的uri属性,此模块中的接口为系统接口,使用此模块需要注意应用是否为系统应用。支持获取文件uri的目录有: 47 - 外部存储目录 48 - Docs目录 49 - Download目录 50 - Desktop目录 51 - Documents目录 52 - Share共享盘目录 53 54* 媒体文件uri使用方式: 55 * 通过[photoAccessHelper模块](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/reference/apis-media-library-kit/js-apis-photoAccessHelper.md)的PhotoViewPicker选择媒体文件,返回选择的媒体文件文件的uri。 56 * 通过[photoAccessHelper模块](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/reference/apis-media-library-kit/js-apis-photoAccessHelper.md)模块中的getAssets或createAsset接口获取媒体文件对应文件的uri。 57 * 通过[userFileManager模块](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-userFileManager-sys.md)中的getPhotoAssets、getAudioAssets、createAudioAsset或createPhotoAsset接口获取媒体文件对应文件的uri。 58 * normal等级的应用使用此类uri可以通过[photoAccessHelper模块](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/reference/apis-media-library-kit/js-apis-photoAccessHelper.md)模块进行进一步处理。 59 * system_basic等级及以上的应用使用此类uri的方式除了上述通过[photoAccessHelper模块](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/reference/apis-media-library-kit/js-apis-photoAccessHelper.md)外还可以通过[userFileManager模块](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-userFileManager-sys.md)进行进一步处理。 60 * 若normal等级的应用也可以通过临时授权的方式使用[photoAccessHelper模块](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/reference/apis-media-library-kit/js-apis-photoAccessHelper.md)的PhotoViewPicker得到的uri使用photoAccessHelper.getAssets接口获取对应uri的PhotoAsset对象。这种方式获取的对象可以调用getThumbnail获取缩略图和使用get接口读取PhotoKeys中的部分信息。 61* 用户复制文件到指定目录: 62 * 通过[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)的createFileAccessHelper接口创建fileAccessHelper helper。 63 * 获取源文件的srcUri。 64 * 获取目的路径的destUri。 65 * 获取备用名 fileName。 66 * 使用helper.copyFile(srcUri, destUri, fileName) 进行文件操作。 67 68### 相关权限 69 70[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) 71 72[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) 73 74[ohos.permission.READ_IMAGEVIDEO](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionread_imagevideo) 75 76### 依赖 77 78不涉及 79 80### 约束与限制 81 821.本示例仅支持标准系统上运行,支持设备:RK3568。 83 842.本示例已适配API16版本SDK,版本号:5.1.0.47,镜像版本号:OpenHarmony5.1.0.47。 85 863.本示例需要使用DevEco Studio (5.0.3.910)及以上版本才可编译运行。 87 884.本示例相关权限为system_basic级别,需要配置高权限签名,可参考[申请使用受控权限](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/security/AccessToken/declare-permissions-in-acl.md)。 89 90### 下载 91 92如需单独下载本工程,执行如下命令: 93 94``` 95git init 96git config core.sparsecheckout true 97echo code/DocsSample/CoreFile/UserFile/UserFileURI > .git/info/sparse-checkout 98git remote add origin https://gitee.com/openharmony/applications_app_samples.git 99git pull origin master 100``` 101 102