HarmonyOS 鸿蒙Next 使用minizip解压带密码的压缩包失败
HarmonyOS 鸿蒙Next 使用minizip解压带密码的压缩包失败
使用minizip解压带密码的压缩包失败
2 回复
您的zip的加密格式为AES吗?三方库有提供解压带密码的压缩包能力,您可以尝试用这个试试:
https://gitee.com/openharmony-tpc/openharmony_tpc_samples/tree/master/ohos-jszip
import fs from '[@ohos](/user/ohos).file.fs';
import { BusinessError } from '[@kit](/user/kit).BasicServicesKit';
import { unzipToDirectory } from '[@ohos](/user/ohos)/minizip';
[@Entry](/user/Entry)
[@Component](/user/Component)
struct Page240624161324069 {
[@State](/user/State) context: Context = getContext(this);
build() {
Column() {
Row() {
Button('jszip unzip testpwd').onClick(async () => {
try {
const content = this.context.resourceManager.getRawFileContentSync("testpwd.zip");
let file2 = fs.openSync(this.context.filesDir + '/testpwd.zip', fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
fs.writeSync(file2.fd, content.buffer);
fs.close(file2);
try {
const result = await unzipToDirectory(this.context.filesDir + '/testpwd.zip', this.context.filesDir + '/unziptestpwd', '123456');
console.log(result);
// 可以在这里添加用户反馈,例如弹出提示框
} catch (err: BusinessError) {
console.error('解压缩失败:', err.message);
// 这里也可以添加用户反馈
}
} catch (error) {
console.error('文件操作失败:', error);
// 这里也可以添加用户反馈
}
})
}
.width('100%')
}
.height('100%')
}
}
更多关于HarmonyOS 鸿蒙Next 使用minizip解压带密码的压缩包失败的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html