本库是基于 libarchive
开发完成,支持常见的 7z
, tar
, zip
, gz
, xz
格式解压缩。
ohpm i @mysoft/archive
环境配置等更多内容,请参考如何安装 ohpm 包
compress(inFile: string, outFile: string, format: archiveLib.CompressFormat): Promise<archiveLib.Result>
压缩文件,压缩的结果使用Promise异步返回。成功时返回{code: 0, message: 'Success'}
,失败时返回错误码和具体的错误内容。
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
inFile | string | 是 | 指定压缩的文件夹路径或者文件路径,路径必须为沙箱路径,沙箱路径可以通过context获取。 inFile:/a/b/c;执行结果:压缩文件夹c inFile:/a/b/c/;执行结果:压缩文件夹c下的所有文件和文件夹 inFile:/a/b/c/test.txt;执行结果:压缩文件test.txt |
outFile | string | 是 | 指定的压缩结果的文件路径。如果outFile已存在,则直接覆盖。多个线程同时压缩文件时,outFile不能相同。 |
format | archiveLib.CompressFormat | 是 | 压缩格式,支持 7z , tar , zip , gz , xz |
类型 | 说明 |
---|---|
Promise<archiveLib.Result> | Promise对象,返回 archiveLib.Result 说明:code :错误码message :错误详情 |
import { archiveLib } from '@mysoft/archive'
const ret = await archiveLib.compress(inFile, outFile, format)
if (ret.code === 0) {
console.log('压缩成功')
} else {
console.log(`压缩失败,code: ${ret.code}, message: ${ret.message}`)
}
decompress(inFile: string, outFile: string): Promise<archiveLib.Result>
解压文件,解压的结果使用Promise异步返回。成功时返回{code: 0, message: 'Success'}
,失败时返回错误码和具体的错误内容。
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
inFile | string | 是 | 指定的待解压缩文件的文件路径。文件路径必须为沙箱路径,沙箱路径可以通过context获取。 |
outFile | string | 是 | 指定的解压后的文件夹路径,文件夹目录路径需要在系统中存在,不存在则会解压失败。路径必须为沙箱路径,沙箱路径可以通过context获取。如果待解压的文件或文件夹在解压后的路径下已经存在,则会直接覆盖同名文件或同名文件夹中的同名文件。多个线程同时解压文件时,outFile不能相同。 |
类型 | 说明 |
---|---|
Promise<archiveLib.Result> | Promise对象,返回 archiveLib.Result 说明:code :错误码message :错误详情 |
import { archiveLib } from '@mysoft/archive'
const ret = await archiveLib.decompress(inFile, outFile)
if (ret.code === 0) {
console.log('解压成功')
} else {
console.log(`解压失败,code: ${ret.code}, message: ${ret.message}`)
}
使用过程中发现任何问题都可以提 Issue; 当然,我们也非常欢迎发 PR 。
本项目基于 Apache License 2.0 ,在拷贝和借鉴代码时,请务必注明出处。