鸿蒙开发:文件推送到沙箱路径

news2024/11/23 18:52:17

最近一个项目需要基于沙箱路径下的文件进行操作,奈何应用沙箱路径下没有。找来找去方法都是要把文件推送进去。以下是我的一些拙见,请各位看官老爷指点一二。

沙箱路径

沙箱路径(Sandbox Path)通常是指在计算机安全和软件开发中,为应用程序提供的一种隔离环境。这种环境允许程序运行在一个受限的区域中,这样即使程序出现错误或者恶意行为,也不会影响到系统的其他部分。沙箱技术广泛应用于测试、开发以及安全防护等多个领域。

鸿蒙开发中所涉及的沙箱路径请详见官网。

从rawFile到应用沙箱

鸿蒙提供了将rawFile目录下文件推送到沙箱路径的方法:基于getRawFileContentSync()读取文件+fs.writeSync()写文件。

/**
 * 从rawFile向沙箱路径复制文件
 */
static async FromRawToBox(){

    let file = filesDir + "/test.txt";
    // console.info(TAG + file)
    AppInstaller.hapFilePaths = [file]

    fs.access(file).then((res: boolean) => {
      if (res) {
        console.info(TAG + "file exists");
      } else {
        let sss = fs.createStreamSync(file, "w+"); //没有会创建一个空的
        sss.closeSync();

        //获取rawfile下entry-default-signed.hap
        let uint8Array: Uint8Array = context.resourceManager.getRawFileContentSync("test.txt");
        let bf = buffer.from(uint8Array).buffer;

        // 打开文件
        const fsOpen = fs.openSync(file, fs.OpenMode.READ_WRITE | fs.OpenMode.READ_ONLY | fs.OpenMode.CREATE | fs.OpenMode.TRUNC)

        // 写入文件
        let destFile = fs.writeSync(fsOpen.fd, bf);
        console.info(TAG + 'write successfully!')
        // 关闭文件
        fs.close(destFile)
      }
    }).catch((err: BusinessError) => {
      console.error("access failed with error message: " + err.message + ", error code: " + err.code);
    });
}

 主页面

import { AppInstaller } from '../commont/IntallUtil'

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';

  build() {
    Column() {
      Text(this.message)
        .margin({top:200})
        .id('HelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
      Button('推送')
        .type(ButtonType.Capsule)
        .width(100)
        .height(40)
        .fontSize(20)
        .onClick(()=>{
          AppInstaller.FromRawToBox()
        })
    }
    .height('100%')
    .width('100%')
  }
}

 点击“推送”,成功推入!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2203476.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【大学学习-大学之路-回顾-电子计算机相关专业-学习方案-自我学习-大二学生(2)】

【大学学习-大学之路-回顾-电子&计算机相关专业-学习方案-自我学习-大二学生(2)】 1、前言2、总体说明1-保证课程原因1:原因2: 2-打比赛3-自我适应 - 享受大学生活 3、 保证课程1、英语课程2、专业课程3、其他课程 4、 打比赛…

数据质量指标:如何衡量数据的准确性

数据质量是任何数据驱动运营的重要组成部分。即使对于不打算将数据集出售给其他公司的企业,数据的质量和准确性也会极大地影响决策效率。 不幸的是,没有单一指标可以确保数据质量达到标准。您必须跟踪多个指标并不断关注它们。因此,维护数据…

高通QCS6490开发(十):合并显示多路安防摄像头

视频分析时边缘侧AI应用的一个常见场景,边缘侧的单个节点能够同时视频流越多,这不仅提高了处理效率,还具有显著的经济性。本文将介绍如何使用QCS6490的VPU(视频处理单元)来支持H264/H265的视频硬件编解码,并…

C语言计算GPS卫星位置

1 概述 在用GPS信号进行导航定位以与制订观测计划时,都必须已知GPS卫星在空间的瞬间位置。卫星位置的计算是根据卫星电文所提供的轨道参数按一定的公式计算的。本节专门讲解观测瞬间GPS卫星在地固坐标系中坐标的计算方法。 2 卫星位置的计算 1. 计算卫星运行的平…

如何做好项目管理中的需求管理?

本人任职于某科技公司项目经理,主要帮助客户梳理现有的业务流程,借助公司自主研发的低代码平台实现流程的线上化,业务的数字化转型。 由于项目性质特殊,在实施期间,对于总体项目需要采用传统的瀑布式开发规划整个项目…

揭秘网络流量分析的秘密 WireShark使用教程

WireShark是一个网络包分析工具。该工具主要用来捕获网络数据包,并自动解析网络数据包,为用户显示数据包详细信息,供用户对数据包进行分析 网络管理员 使用WireShark来检查网络问题网络安全工程师 使用WireShark来检查咨询安全相关问题开发人…

腾讯云大牛亲码“redis深度笔记”在牛客网上火了,完整 PDF 开源

前言 作为这个时代码代码的秃头人员,对Redis肯定是不陌生的,如果连Redis都没用过,还真不好意思出去面试,指不定被面试官吊打多少次。 毕竟现在互联网公司和一些创业公司都要用到Redis,像亚马逊、谷歌、阿里、腾讯都要…

【大模型理论篇】精简循环序列模型(minGRU/minLSTM)性能堪比Transformer以及对循环神经网络的回顾

1. 语言模型之精简RNN结构 近期关注到,Yoshua Bengio发布了一篇论文《Were RNNs All We Needed?》,提出简化版RNN(minLSTM和minGRU)。该工作的初始缘由:Transformer 在序列长度方面的扩展性限制重新引发了对可在训练期…

6款支持多平台的电脑监控软件,电脑多屏监控软件

在当今信息化办公环境中,监控软件已成为企业提升工作效率、管理公司资源的关键工具。随着远程办公与多设备管理的兴起,具备多平台兼容性和强大功能的电脑监控软件,能够帮助管理者随时掌握员工的工作情况、数据安全以及企业运营状态。本文将推…

【全解析】从xinput1_3.dll的作用到解决xinput1_3.dll相关问题的深度探究

在计算机系统的运行过程中,我们有时会遇到各种各样的文件缺失问题,其中xinput1_3.dll文件的缺失是比较常见的一种情况。今天这篇文章将和大家聊聊从xinput1_3.dll的作用到解决xinput1_3.dll相关问题的深度探究,将电脑恢复正常。 xinput1_3.dl…

SROP验证

文章目录 SROPsignal机制 SROP的利用原理:获取shellsystem call chains条件:sigreturn 测试 例题: SROP signal机制 signal 机制是类 unix 系统中进程之间相互传递信息的一种方法。一般,我们也称其为软中断信号,或者软…

Flash 闪存技术基础与 SD NAND Flash 产品测试解析

本篇除了对flash闪存进行简单介绍外,另给读者推荐一种我本人也在用的小容量闪存。 自带坏块管理的SD NAND Flash(贴片式TF卡),尺寸小巧,简单易用,兼容性强,稳定可靠,标准SDIO接口&a…

产品图册不会设计?这个网站有大量产品图册案例和模板。

​在当今这个视觉至上的时代,一本设计精美的产品图册无疑能为企业或个人品牌增色不少。产品图册不仅能直观地展示产品特点,还能传达品牌理念,从而吸引潜在客户。然而,对于很多企业或个人来说,设计一本专业水准的产品图…

10月10日

hh 绘制 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QMouseEvent> #include<QPaintEvent> #include<QPixmap> #include<QPainter> #include<QPen> #include<QColorDialog> QT_BEGIN_NAMESPACE namespace Ui {…

“ORA-01017(:用户名/口令无效; 登录被拒绝)”解决办法

目录 报错&#xff1a;ORA-01017&#xff08;&#xff1a;用户名/口令无效; 登录被拒绝&#xff09; 1.打开CMD命令窗&#xff0c;输入sqlplus / as sysdba 1&#xff09;修改密码 SQL>alter user 用户名 identified by 密码 alter user system identified by manager;2&…

27.数据结构与算法-图的遍历(DFS,BFS)

遍历定义与遍历实质 图的特点 图的常用遍历方法 深度优先搜索-DFS 邻接矩阵表示的无向图深度遍历实现 DFS算法效率分析 非连通图的遍历 广度优先搜索遍历-BFS 邻接表表示的无向图广度遍历实现 BFS算法效率分析 非连通图的广度遍历 DFS和BFS算法效率比较

多线程-初阶(2)BlockingQueueThreadPoolExecutor

学习目标&#xff1a; 熟悉wait和notify的线程休眠和启动 熟悉多线程的基本案例 1.单例模式的两种设置模式:懒汉模式和饿汉模式 2.阻塞队列(生产者消费者模型) 3.线程池 4.定时器 1.wait和notify 由于线程之间是抢占式执⾏的, 因此线程之间执⾏的先后顺序难以预知. 但是…

Kotlin顶层属性

kotlin顶层属性 属性可以单独放在一个文件中 file:JvmName("TestValue") // 指定顶层函数生成的类名, 如果不主动声明&#xff0c;默认&#xff08;当前文件名Kt&#xff09;var test_var 1val test_val 2const val test_const_val 3对应生成的java代码如下: 可…

grafana version 11.1.0 设置Y轴刻度为1

grafana 版本 # /usr/share/grafana/bin/grafana --version grafana version 11.1.0设置轴 Axis 搜索 Standard options 在"Decimals"中输入0&#xff0c;确保只显示整数

Kafka 的 Producer 如何实现幂等性

在分布式系统中&#xff0c;消息队列 Kafka 扮演着重要的角色。而确保 Kafka 的 Producer&#xff08;生产者&#xff09;的消息发送具有幂等性&#xff0c;可以极大地提高系统的可靠性和稳定性。那么&#xff0c;Kafka 的 Producer 是如何实现幂等性的呢&#xff1f;让我们一起…