当前位置: 首页 > news >正文

什么网站免费购物商城考研最靠谱的培训机构

什么网站免费购物商城,考研最靠谱的培训机构,垂直型b2c平台有哪些,wordpress博客的搭建【HarmonyOS】鸿蒙将资源文件夹Resource-RawFile下的文件存放到沙箱目录下 一、问题背景 应用开发中,我们经常会遇到一些文件原先是放在资源文件夹 rawfile下,但是逻辑处理时,需要转移到本地沙箱才能操作。这种情况下,就需要将将…

【HarmonyOS】鸿蒙将资源文件夹Resource-RawFile下的文件存放到沙箱目录下

一、问题背景

应用开发中,我们经常会遇到一些文件原先是放在资源文件夹 rawfile下,但是逻辑处理时,需要转移到本地沙箱才能操作。这种情况下,就需要将将资源文件夹Resource-RawFile下的文件存放到沙箱目录下。

二、鸿蒙资源文件和沙箱的概念

在鸿蒙中,应用仅能保存文件到“应用文件目录”下,根据目录的使用规范和注意事项来选择将数据保存到不同的子目录中。

这样的设定与安卓和苹果目前一致。应用沙箱的概念,可以保证数据访问的安全性。

在鸿蒙系统中,文件存储分为不同的域,如应用内部存储(应用私有目录)和外部存储(公共目录等)。应用内部存储是应用私有的,其他应用通常无法访问。外部存储可以在用户授权的情况下被多个应用访问。
在这里插入图片描述
注意:

不要使用绝对路径拼接系统文件路径,否则可能导致后续应用版本因应用文件路径变化导致不兼容问题。应该是用context去动态获取。

而rawfile是一种资源文件类型,通常在应用开发过程中作为原始文件被打包进应用的资源目录。它在 APK(安卓应用安装包)或者鸿蒙应用安装包(HAP)中是只读的。

三、解决方案思路

在这里插入图片描述

1.首先我们需要通过getRawFileContentSync读取rawfile下目标文件的内容val

      let val: Uint8Array = context.resourceManager.getRawFileContentSync("test.zip");

2.之后创建本地沙箱的文件对象fileTarget

  let pathDir: string = context.filesDir; // /data/storage/el2/base/haps/entry/filesconsole.info(this.TAG, "pathDir: " + pathDir);// 待拷贝文件沙箱路径let filePath: string = pathDir + '/test.zip';console.info(this.TAG, "filePath: " + filePath);// 若文件不存在,则创建文件。let fileTarget = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);

3.将val目标文件内容写入文件对象即可

      let writeLen = fs.writeSync(fileTarget.fd, val.buffer as ArrayBuffer);

最后记得关闭fs

 fs.closeSync(fileTarget);

完整源码

import { common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { fileIo as fs } from '@kit.CoreFileKit';

struct SandboxPage {private TAG: string = "SandboxPage";onCopyRawFileToLocal = ()=>{let context = getContext(this) as common.UIAbilityContext; // 获取设备A的UIAbilityContext信息try {let val: Uint8Array = context.resourceManager.getRawFileContentSync("test.zip");console.info(this.TAG, "getRawFileContentSync done");let pathDir: string = context.filesDir; // /data/storage/el2/base/haps/entry/filesconsole.info(this.TAG, "pathDir: " + pathDir);// 待拷贝文件沙箱路径let filePath: string = pathDir + '/test.zip';console.info(this.TAG, "filePath: " + filePath);// 若文件不存在,则创建文件。let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);console.info(this.TAG, "file done");let writeLen = fs.writeSync(file.fd, val.buffer as ArrayBuffer);console.info(this.TAG, "write data to file succeed and size is:" + writeLen);fs.closeSync(file);} catch (error) {let code = (error as BusinessError).code;let message = (error as BusinessError).message;console.error(this.TAG,`getRawFileContentSync failed, error code: ${code}, message: ${message}.`);}}build() {RelativeContainer() {Text("点击拷贝zip到本地沙箱下").id('SandboxPageHelloWorld').fontSize(50).fontWeight(FontWeight.Bold).alignRules({center: { anchor: '__container__', align: VerticalAlign.Center },middle: { anchor: '__container__', align: HorizontalAlign.Center }}).onClick(this.onCopyRawFileToLocal)}.height('100%').width('100%')}
}

验证zip拷贝成功:
1. IDE右下角找到 Device File Browser
在这里插入图片描述
2.根据你的app包名,找到zip的位置
在这里插入图片描述

http://www.tj-hxxt.cn/news/8245.html

相关文章:

  • 河北港网站建设网络销售就是忽悠人
  • 设计云网站建设百度互联网营销
  • 陕西省住房和建设厅网站百度快照怎么打开
  • 网站开发代码网络推广公司简介
  • 爱客装修官网seo网站排名的软件
  • 零食电子商务网站建设策划书seo企业优化顾问
  • 电子商务网站建设的背景广州网络推广哪家好
  • 织梦网站地图插件utf-8没被屏蔽的国外新闻网站
  • 网站建设研究目前网络推广平台
  • 如何做律所网站网络营销的推广方法
  • 白云做网站公司优秀企业网站模板
  • 做游戏直播什么游戏视频网站站群seo技巧
  • 公司网站怎么做百度竞价平台推广公众平台营销
  • 网站的数据库怎么建立营销方案网站
  • 如何做网站好看网站开发工具
  • 电商平台寻求供货商哪些网站可以seo
  • 以星空做的网站模板产品销售推广方案
  • 学院宣传网站制作长春网站优化指导
  • 做网站用哪种编程语言seo品牌优化
  • 潍坊手机网站制作网络营销渠道可分为
  • 服务器网站慢的原因下载百度网盘app最新版
  • 长沙专业网站建设运营网络广告推广方法
  • wordpress 附件丢失河南网站排名优化
  • wordpress 不在根目录优化推广排名网站教程
  • 诸城网站做的好的行业关键词分类
  • 做网站一年百万网站快速优化排名排名
  • 苹果app如何做ppt模板下载网站最近新闻今日头条
  • 可信网站认证购买滁州网站seo
  • 网页制作淘宝网站建设专业的制作网站开发公司
  • auxer可以做网站嘛电商产品推广方案