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

石家庄个人谁做网站企业查询网站

石家庄个人谁做网站,企业查询网站,浅谈天猫的电子商务网站建设,seo技术什么意思【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.rdtb.cn/news/14804.html

相关文章:

  • 南通专业做网站山西seo排名
  • 专做蔬菜水果的网站seo培训
  • 给公司建网站 深圳拼多多代运营收费标准
  • 木材模板.网站外贸网站建站
  • 日照哪里有做网站的网站seo优化包括哪些方面
  • 制作动态网站第一步网络推广属于什么行业
  • 中国电信网站备案系统网站建设品牌公司
  • 网站开始怎么做seo如何优化关键词排名
  • 广州网络公司策划北京seo代理公司
  • seo怎样优化网站广州seo招聘信息
  • 什么网站可以请人做软件下载网站seo收费
  • 成都网站建设价格表推荐seo关键词优化
  • 高安网站制作淘宝代运营公司十大排名
  • 吉安市建设规划局网站网站优化排名推荐
  • 网站发展历程seo是什么姓
  • 自动焊锡机b2b平台网站最近的大新闻
  • 电商网站开发技术方向如何做百度关键词推广
  • 推荐一本学做网站的书网络推广和运营的区别
  • 零基础学jsp网站开发外国人b站
  • 网站建网站建设专业凡科建站怎么样
  • 溧阳网站制作热门搜索关键词
  • 能下短视频网站做牙东莞网络营销推广软件
  • 秦皇岛市城乡建设局网站seo查询网站
  • 网站后台挂马怎么处理百度指数资讯指数是指什么
  • 有哪些免费网站可以做店招南京seo公司排名
  • 韦博在上面做课件的网站叫什么杭州百度推广代理商
  • 义乌免费做网站seo是什么?
  • 搜索网站排行榜怎么开网店
  • 四川建设岗培注册中心官网有名的seo外包公司
  • 商丘做网站汉狮网络企业关键词优化最新报价