鸿蒙开发之压缩/解压缩
2023-12-20 21:34:40
本次学习遗留一个问题:压缩/解压缩的路径怎么获取??希望知道的小伙伴能给说一下,私聊评论皆可。
一、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中固定的方法才能获取。
最后,希望读到此处的你,如果知道问题的原因请不吝赐教,或者说怎么直接拿到我项目中的资源的沙箱地址,然后,压缩后的文件去哪了
文章来源:https://blog.csdn.net/Lu_Ca/article/details/135110742
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!