鸿蒙开发之压缩/解压缩

本次学习遗留一个问题:压缩/解压缩的路径怎么获取??希望知道的小伙伴能给说一下,私聊评论皆可。

一、API使用

代码相对来说比较简单

//需要导入的头文件
import zlib from '@ohos.zlib'//压缩函数
function zipFile() {let rawfile = '/data/app/el1/bundle/public/com.example.myapplication/entry/resources/rawfile'//压缩文件的地址let inFile = rawfile + '/test.txt'let outFile = rawfile + '/test.zip'console.log('压缩路径是'+inFile)console.log('压缩zip路径是'+outFile)let options = {//默认压缩程度,可以设置最快、最大压缩程度、压缩率为0level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,//压缩过程中内存使用情况,默认、最大、最小memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,//压缩的策略,这里是默认strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY}try {zlib.compressFile(inFile, outFile, options).then((data) => {//成功的回调,反正我是找不到压缩完的文件console.info('compressFile success');}).catch((errData) => {console.log(`errData is errCode:${errData.code}  message:${errData.message}`);})} catch(errData) {console.log(`errData is errCode:${errData.code}  message:${errData.message}`);}
}

解压类似,方法名称替换成zlib.decompressFile即可。

二、问题

如代码注释,我开始把要压缩的test.txt文件放到了rawfile文件中,然后一顿操作,发现没有产出相应的压缩包。然后,又各种移动还是不行。虽然API调用成功了。

看官方文档

好,你跟我说沙箱地址可以通过context获取是吧,那我就去找获取沙箱路径方式,官方如下

什么鬼,你让我在Ability中获取沙箱地址,难道我在一个组件中不能获取沙箱地址??我不信邪的在组件内获取沙箱地址,发现getContext(this).filesDir,调用后报错,说方法找不到,打印发现context为空。。。。。

那我就在Ability中定义一个const字符串,然后在其他组件访问又报错。。。

继续吐槽:官网的事例代码能不能贴近一点真实场景,这样的地址肯定是很多地方要获取的,怎么可能只在Ability中固定的方法才能获取。

最后,希望读到此处的你,如果知道问题的原因请不吝赐教,或者说怎么直接拿到我项目中的资源的沙箱地址,然后,压缩后的文件去哪了

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

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

相关文章

高通平台开发系列讲解(USB篇)adb应用adbd分析

沉淀、分享、成长,让自己和他人都能有所收获!😄 在apps_proc/system/core/adb/adb_main.cpp文件中main()函数会调用adb_main()函数,然后调用uab_init函数 在uab_init()函数中,会创建一个线程,在线程中会调用init_functionfs()函数,利用ep0控制节点,创建ep1、ep2输…

在区块链中看CHAT的独特见解

问CHAT:谈谈对区块链以及区块链金融的理解 CHAT回复:区块链是一种去中心化的分布式数据库技术,这种技术通过加密算法,使数据在网络中传输和存储的过程变得更加安全可靠。区块链的出现引领了存储、交易等形式的革命,改变…

通过https协议访问Tomcat部署并使用Shiro认证的应用跳转登到录页时协议变为http的问题

问题描述: 在最近的一个项目中,有一个存在较久,并且只在内部城域网可访问的一个使用Shiro框架进行安全管理的Java应用,该应用部署在Tomcat服务器上。起初,应用程序可以通过HTTP协议访问,一切运行都没…

FreeCodeCamp--数千免费编程入门教程,非盈利性网站,质量高且支持中文

在浏览话题“Github上获得Star最多的项目”时,看到了FreeCodeCamp,顾名思义--免费编程营地,于是就做了些调研,了解了下这是个什么项目 这是一个致力于推动编程教育的非营利性组织,团队由来自世界各地的杰出的技术开发…

java中常用的加密算法总结

目前在工作中常用到加密的一些场景,比如密码加密,数据加密,接口参数加密等,故通过本文总结以下常见的加密算法。 1. 对称加密算法 对称加密算法使用相同的密钥进行加密和解密。在Java中,常见的对称加密算法包括&…

机器人也能干的更好:RPA技术的优势和应用场景

RPA是什么? 机器人流程自动化RPA(Robotic Process Automation)是一种自动化技术,它使用软件机器人来高效完成重复且有逻辑性的工作。近年来,随着人工智能和自动化技术的不断发展和普及,RPA已经成为企业提高…

模拟信号和数字信号的区别

模拟和数字信号是携带信息的信号类型。两种信号之间的主要区别在于模拟信号具有连续电信号,而数字信号具有非连续电信号。 模拟信号和数字信号之间的差异可以通过不同类型波的例子来观察。 什么是模拟信号(Analog Signals)? 许多系统使用模拟信号来传输…

基于SpringBoot+Vue的小区物业管理系统

基于SpringBootVue的小区物业管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringBootVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 房屋类型 论坛 登录界面 管理员界面 员工界面 摘要 小区物业管理系统是一个…

翻译: LLMs离通用人工智能AGI有多远 20个小时学会开车 Artificial General Intelligence

AGI,即人工通用智能,是一个令人兴奋的概念。我认为围绕它的一些混淆源于“通用”这个词的使用。正如您所知,人工智能是一种通用技术,意味着它对许多不同的事情都有用。大型语言模型的崛起导致了像ChatGPT这样的单一模型可以用于许…

鸿蒙(HarmonyOS)应用开发—— video组件实操

video 组件 harmonyOS 系统提供了基础的video。下面就直接上代码 原始video 新建项目 customVideo项目 本地视频 网络地址,就不用说明,只需要把地址换成网络地址即可 在resource 文件夹下的rawfile文件夹下 添加视频 在index.ets Video({src:$rawf…

自动化测试工具——Monkey

前言: 最近开始研究Android自动化测试方法,整理了一些工具、方法和框架,其中包括android测试框架,CTS、Monkey、Monkeyrunner、benchmark,以及其它test tool等等。 一、 什么是Monkey Monkey是Android中的一个命令行…

Mybatis-Plus讲义v1.0

Mybatis-Plus 课程目标 了解Mybatis-Plus 整合Mybatis-Plus 通用CRUD Mybatis-Plus的配置 条件构造器 Mybatis-Plus 的Service封装 代码生成器 1 Mybatis-Plus介绍 1.1 Mybatis-Plus介绍 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具&…

Ubuntu-20.04.2 mate 上安装、配置、测试 qtcreator

一、从repo中安装 Ubuntu-20.04.2的repo中,qtcreator安装包挺全乎的,敲完 sudo apt install qtcreator 看一下同时安装和新软件包将被安装列表,压缩包252MB,解压安装后933MB,集大成的一包。 sudo apt install qtcrea…

现代雷达车载应用——第3章 MIMO雷达技术 3.2节 汽车MIMO雷达波形正交策略

经典著作,值得一读,英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 3.2 汽车MIMO雷达波形正交策略 基于MIMO雷达技术的汽车雷达虚拟阵列合成依赖于不同天线发射信号的可分离性。当不同天线的发射信号正交时&#x…

软件设计模式:UML类图

文章目录 前言一、📖设计模式概述1.软件设计模式的产生背景2.软件设计模式3.设计模式分类 二、📣UML图1.类图概述2.类的表示法3.类与类之间的关系关联关系(1)单向关联(2)双向关联(3)…

CCF编程能力等级认证GESP—C++6级—20230923

CCF编程能力等级认证GESP—C6级—20230923 单选题(每题 2 分,共 30 分)判断题(每题 2 分,共 20 分)编程题 (每题 25 分,共 50 分)小杨买饮料小杨的握手问题 答案及解析单选题判断题编程题1编程题…

vba中字典的应用实例

vba中熟练使用字典可以帮我们解决很多问题,以下为字典的应用方法及案例: Sub dictionary() Dim d As New dictionary 定义字典 Dim mykey As Variant Dim myitems d.Add "1100000", "身份证" 字典录入key关键字和item条目 d.Add &q…

C语言归并排序(合并排序)算法以及代码

合并排序是采用分治法,先将无序序列划分为有序子序列,再将有序子序列合并成一个有序序列的有效的排序算法。 原理:先将无序序列利用二分法划分为子序列,直至每个子序列只有一个元素(单元素序列必有序),然后再对有序子序…

AtCoder Beginner Contest 333 A~F

A.Three Threes&#xff08;循环&#xff09; 题意&#xff1a; 给出一个正整数 N N N&#xff0c;要求输出 N N N个 N N N 分析&#xff1a; 按要求输出即可 代码&#xff1a; #include <bits/stdc.h> using namespace std;void solve() {int n;cin >> n;fo…

「遮天」段德互坑叶凡,期满至宝绿铜下落,老疯子限定回归

Hello,小伙伴们&#xff0c;我是拾荒君。 《遮天》第36集已经更新了&#xff0c;我迫不及待地跟随漫迷的脚步&#xff0c;前往观看。这一集中&#xff0c;叶凡在途中偶遇了一个醉酒的段德。这个段德之前曾沦陷在阴坟之中&#xff0c;如今能够逃出&#xff0c;可见他的实力深不…