插件
Zip
@nativescript/zip
用于压缩和解压缩文件的插件。
内容
安装
npm install @nativescript/zip
使用 @nativescript/zip
压缩文件夹
要压缩文件夹,请在 Zip 类上调用 zip() 方法,并传递一个 ZipOptions 对象。
async zip() {
let zipPath = path.join(knownFolders.temp().path, 'stuff.zip');
let dest = path.join(knownFolders.currentApp().path, '/assets');
const zipped = await Zip.zip({
directory: dest,
archive: zipPath,
}).then((value)=>{
console.log("zipped",value)
}).catch(err=>{
console.error(err)
});
}
获取压缩请求进度
要获取压缩请求进度,请将 onProgress
属性设置为一个函数来处理进度事件。
在传递给 zip() 的 ZipOptions 对象中。
import { Zip } from '@nativescript/zip'
import { path, knownFolders } from '@nativescript/core'
let zipPath = path.join(knownFolders.temp().path, 'stuff.zip')
let dest = path.join(knownFolders.documents().path, '/assets')
Zip.zip({
directory: dest,
archive: zipPath,
onProgress: onZipProgress,
})
function onZipProgress(percent: number) {
console.log(`unzip progress: ${percent}`)
}
解压缩文件夹
要解压缩文件夹,请在 Zip 类上调用 unzip() 方法,并传递一个 UnZipOptions 对象。
import { Zip } from '@nativescript/zip'
import { path, knownFolders } from '@nativescript/core'
let zipPath = path.join(knownFolders.temp().path, 'stuff.zip')
let dest = path.join(knownFolders.documents().path, '/assets')
Zip.unzip({
archive: zipPath,
directory: dest,
})
获取解压缩请求进度
要获取解压缩请求进度,请将 onProgress
属性设置为一个函数来处理进度事件。
import { Zip } from '@nativescript/zip';
import { path, knownFolders } from '@nativescript/core';
let zipPath = path.join(knownFolders.temp().path, 'stuff.zip');
let dest = path.join(knownFolders.documents().path, '/assets');
async unzip(){
const unzipped = await Zip.unzip({
archive: zipPath,
directory: dest,
onProgress: onUnZipProgress,
});
}
function onUnZipProgress(percent: number) {
console.log(`unzip progress: ${percent}`);
}
API
Zip 类
debugEnabled
Zip.debugEnabled = true
zip()
Zip.zip(options)
.then((zipped: string) => {})
.catch((err) => {})
压缩 options
参数的 directory
属性中指定的路径的文件夹。它将压缩的文件夹保存在通过 archive
属性设置的路径。options
对象具有以下属性
ZipOptions 接口
| 属性 | 类型 | | :----------- | :--------------------------- | ------------------------------------------------------ | | directory
| string
| 可选:要压缩的目录。 | | archive
| string
| 可选:要压缩 directory
的路径。 | | onProgress
| (progress: number) => void
| 可选:压缩请求进度监听器。 | | keepParent
| boolean
| 可选: | | password
| string
| 可选:用于保护压缩文件的密码。 |
unzip()
Zip.unzip(options)
.then((unZipped: any) => {})
.catch((err) => {})
从 options
参数的 archive
属性中指定的压缩文件中提取所有文件。提取的文件存储在通过 directory
属性指定的路径中。options
对象具有以下属性
UnZipOptions 接口
| 属性 | 类型 | | :----------- | :--------------------------- | ------------------------------------------------------ | | directory
| string
| 可选:要提取文件的路径。 | | archive
| string
| 可选:压缩文件的路径。 | | onProgress
| (progress: number) => void
| 可选:解压缩请求进度监听器。 | | overwrite
| boolean
| 可选: (iOS-only
) | | password
| string
| 可选:用于保护压缩文件的密码。 |
许可
Apache 许可证 2.0 版