1 Star 0 Fork 0

ScenarioSamples/File

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

文件操作场景demo

介绍

本demo按照文件上传、文件下载、文件预览、文件读取保存、文件压缩解压、文件拷贝6个分类进行场景化子demo构造展示,如文件上传展示中,模拟简易聊天场景,此时发送文件是个正常诉求,基于此场景完成相关元能力实现及展示。

entry包仅提供页面展示,各文件操作分类对应的har包提供元能力的函数导出。读者无需关注页面样式相关,评估场景及对应har包能力是否需要即可。

使用说明

1.文件预览

1.1.场景介绍:

场景1:通过previewKit预览下载文件,其中预览能力来自file_preview的har包中viewFileByPreviewKit函数,下载能力来自file_download中的downLoadFileByRequest函数

场景2:通过webview组件预览本地rawfile文件以及网络地址,详情代码参考:PreviewByWebview.ets

1.2.效果预览:

2.文件下载

2.1.场景介绍:完成下载配置,包含下载源url,保存路径,保存文件名等,通过request.agent.create创建下载实例对象,该对象来控制下载任务的暂停重启,后台下载等,具体实现代码参考FileDownloadPage.ets

2.2.效果预览:

3.文件读取与保存

**3.1.场景介绍:**模拟即时通讯软件聊天界面,发送图片或者表情包的场景,保存聊天记录的场景,相关元能力来自photoPickerGetUri,saveToUser函数,具体代码参考file_read_write的har包common目录下的utils文件夹。

3.2.效果预览:

4.文件上传

**4.1.前置准备:**已有demo中关于文档上传的部分,上传的服务器地址都是模拟的,未将全流程跑通,本demo示例有简单实现一个node服务器处理,将根目录下uploadServer文件夹拷贝出其他目录,进入uploadServer,按照其中的readme文档将服务启动。需要提前demo目录下的uploadConstant中的ip地址填入本机ip:

4.2.场景介绍 4.2.1. 场景1:通过webview加载h5,模拟云盘上传文件进行缓存的场景,通过监听打开文件选择事件,拉起手机文件管理,通过h5自带form表单进行上传。如图所示: 4.2.2. 场景2:模拟复合表单提交

效果预览

5.文件解压、压缩

**5.1.前置准备:**由于生态代码仓会拦截zip文件,这里需要准备一个压缩文件,放入entry包下资源目录下的rawfile文件中,命名:decompress_file_test.zip 如图:参考README文件

5.2.实现说明5.2.1. 使用了内置库zlib的压缩、解压能力,详细代码参考:CompressFileView.ets、DeCompressFileView.ets 5.2.2. 解压时使用了worker开启子线程加速解压,详情代码参考:file_compress的har包下的worker.ets

效果预览

6.文件拷贝

6.1.场景说明:展示沙箱目录下rawfile文件列表,点击后拉起文件管理选择目录后进行拷贝,拷贝能力由file_copy har包中的copyRawFileToPub函数提供。

6.2.效果预览

参考资料

@ohos.file.fs(文件管理)

@ohos.worker(启动一个Worker)

@ohos.zlib(Zip模块)

一份简单的问卷反馈

亲爱的Harmony Next开发者,您好!
为了协助您高效开发,提高鸿蒙场景化示例的质量,希望您在浏览或使用后抽空填写一份简单的问卷,我们将会收集您的宝贵意见进行优化

点击此处填写问卷

空文件

简介

【鸿蒙 Harmony Next 示例 代码】本demo按照文件上传、文件下载、文件预览、文件读取保存、文件压缩解压、文件拷贝6个分类进行场景化子demo构造展示,如文件上传展示中,模拟简易聊天场景,此时发送文件是个正常诉求,基于此场景完成相关元能力实现及展示。 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/scenario-samples/file.git
git@gitee.com:scenario-samples/file.git
scenario-samples
file
File
master

搜索帮助