鸿蒙开发之压缩/解压缩

news/2024/7/21 10:32:11 标签: harmonyos, 鸿蒙

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

一、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 = {
    //默认压缩程度,可以设置最快、最大压缩程度、压缩率为0
    level: 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.niftyadmin.cn/n/5276913.html

相关文章

再看参数校验

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 写一个接口&#xff0c…

Go后端开发 -- Golang的语言特性

Go后端开发 – Golang的语言特性 文章目录 Go后端开发 -- Golang的语言特性一、Golang的优势1.部署极其简单:2.静态语言3.语言层面的并发4.强大的标准库5.简单易学6.运行效率对比 二、Golang的适用领域1.应用领域2.明星产品 三、Golang的不足 一、Golang的优势 1.部…

el-select 全选

<template><div class"container"><el-selectv-model"choosedList"clearablemultiplecollapse-tagsplaceholder"请选择"change"select_Change"><div style"padding: 0 20px; line-height: 34px">&l…

RK3568平台 PWM Backlight控制背光亮度

一.PWM基本概念 以单片机为例&#xff0c;我们知道&#xff0c;单片机的IO口输出的是数字信号&#xff0c;IO口只能输出高电平和低电平。 假设高电平为5V 低电平则为0V 那么我们要输出不同的模拟电压&#xff0c;就要用到PWM&#xff0c;通过改变IO口输出的方波的占空比从而获…

系列二十八、如何在Oracle官网下载JDK的api文档

一、官网下载JDK的api文档 1.1、官网地址 https://www.oracle.com/java/technologies/javase-jdk21-doc-downloads.html 1.2、我分享的api.chm 链接&#xff1a;https://pan.baidu.com/s/1Bf55Fz-eMTErmQDtZZcewQ?pwdyyds 提取码&#xff1a;yyds 1.3、参考 https://ww…

Git报错x509: certificate signed by unknown authority

下载报错&#xff1a; Error downloading object: model-00001-of-00008.safetensors (ed3ac49): Smudge error: Error downloading model-00001-of-00008.safetensors (ed3ac4983f682a999b0e4b6f072aad294c4fd9a7e968e90835ba5c4b466d3c7c): LFS: Get https://cdn-lfs.huggin…

紫光FPGA学习之常见报错

紫光pango design suite报错&#xff1a; 一、4005: [D:/**/rtl/burstORsingle.v(line number: 47)] Logic for ddr_head_addr_rr does not match a standard flip-flop. 看来看去都没有发现这个定义没有问题呀&#xff0c;检查发现&#xff1a; 原来代码&#xff1a; always…

selenium + chrome109以上版本会自动在C:\Program Files (x86)目录下创建scoped_dir*文件夹

问题如标题所述使用selenium操作chrome109以上版本会在C:\Program Files (x86)目录下创建scoped_dir*文件夹&#xff0c;每次启动都会创建一个&#xff0c;文件夹内容为浏览器的用户配置&#xff0c;大小在20M左右&#xff0c;多次操作后会导致磁盘占满问题。 经过查询问题是ch…