8.7 发布—WinterCG 兼容性第一部分
了解更多

在 GitHub 上查看

@nativescript/zip

用于压缩和解压缩文件的插件。

内容

安装

cli
npm install @nativescript/zip

使用 @nativescript/zip

压缩文件夹

要压缩文件夹,请在 Zip 类上调用 zip() 方法,并传递一个 ZipOptions 对象。

typescript
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 对象中。

typescript
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 对象。

typescript
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 属性设置为一个函数来处理进度事件。

typescript
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

ts
Zip.debugEnabled = true

zip()

ts
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()

ts
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 版

上一个
Twitter
下一个
Apple Pay