@capgo/capacitor-zip

中文文档
8.2.2发布于 2026/10/21MPL-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 4.4万

IOS,Android,和Web上用于拉链和取出文件的免费Capacitor插件.

中文使用文档
文档目录31 节
  1. *免费开始*
  2. 主要特点
  3. 为什么是Capacitor Zip?
  4. 文档
  5. 兼容性
  6. 安装
  7. 进度倾听器
  8. API 密码
  9. 添加倾听器( “ 进度 ” ,...)
  10. zip(...)
  11. unzip(...)
  12. 获取 PluginVersion ()
  13. 接口
  14. 使用量
  15. 基本齐平
  16. 有密码的 Zip
  17. 基本 Unzip
  18. 解开密码
  19. 获取插件版本
  20. 平台支持
  21. 平台限制
  22. 文件路径
  23. iOS系统
  24. 机器人
  25. 处理错误
  26. 依赖关系
  27. iOS系统
  28. 机器人
  29. 网页
  30. 许可证
  31. 贷项

@ capgo/ 电容- zip

在您的 Capacitor app 中 Zip 和 unzip 文件, 可以在 iOS 和 Android 上免费使用, 在网页的浏览器中解析 .

Capgo - Build Capacitor apps with AI, ship updates instantly

队长:在几分钟内将修正推给您的 Capacitor 用户,在没有Mac的情况下构建已签名的iOS和Android apps,并在一击中回滚.

*免费开始*

14天无限自由审判. 不需要信用卡

🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用 @capgo/capacitor-zip 在您的电容应用程序中: npx skills add Cap-go/capgo-skills。然后问你的经纪人: 添加@capgo/capor-zip到我的Capacitor应用上并把它接上 代理设置指南 • 妇女 主机磁共振

@capgo/capacitor-zip for Capacitor apps

主要特点

  • 齐普数字 : zip() 将文件或文件夹压缩到归档中.
  • 解齐普数字 : unzip() 提取归档到目的文件夹 .
  • 土著图书馆: ZIPFoundation on iOS和zip4j在Android上.
  • Android 的密码:AES-256在通过密码时加密了档案.
  • 网络解析数字 : unzip() 在浏览器中工作,并单独下载每个文件,没有文件夹结构.
  • 进展活动数字 : addListener('progress', ...) 报告字节和文件进度 zip 财务报告和审定财务报表 unzip (网:只提供unzip).
  • 平台: iOS,Android和Web. 互联网档案馆的存檔,存档日期2013-12-02. zip() 无法在网上查阅.

为什么是Capacitor Zip?

A 类 自由和开源选项 对于 Capacitor apps 中的 ZIP 文件操作 :

  • 本地性能 - 使用平台-本地ZIP库进行快速压缩
  • 密码保护 - Android上的AES加密支持(iOS即将到来)
  • 跨平台 - 在iOS、Android和Web工作
  • 类型脚本 - 包括全部类型脚本定义
  • 现代 APIs - 以最新的7个标准建造

适合需要文件压缩,备份功能,数据导出,或安全文件传输的应用程序.

文档

这里有最完整的医生: https://capgo.app/docs/plugins/zip/ 页面存档备份,存于互联网档案馆

兼容性

插件版本电容兼容性维护
联合国联合国✅
页:1页:1应要求
页:1页:1❌
页:1页:1❌

说明: 此插件的主要版本沿用了Capacitor的主要版本. 使用匹配您的 Capacitor 安装的版本( 如 Capacitor 8 的插件 v8) 。 只有最新的主要版本得到积极维护.

安装

您可以使用我们的 AI 辅助设置安装插件 。 使用以下命令将 Capgo 技能添加到您的 AI 工具 :

npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins

然后使用下列提示:

Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-zip` plugin in my project.

如果您更喜欢手动设置,请通过运行以下命令来安装插件,并遵循下面的平台特定指令:

npm install @capgo/capacitor-zip
npx cap sync

进度倾听器

import { CapacitorZip } from '@capgo/capacitor-zip';

const listener = await CapacitorZip.addListener('progress', (event) => {
  const percent = Math.round(event.progress * 100);
  console.log(`${event.operation} ${percent}%`, event.currentFile ?? '');
});

try {
  await CapacitorZip.zip({ source: '/path/to/folder', destination: '/path/to/archive.zip' });
} finally {
  await listener.remove();
}

API 密码

用于压缩和取出zip档案的Capacitor Zip插件.

为本地 ZIP 文件操作提供平台特定执行:

  • iOS: 使用 ZIPFoundation(不支持密码保护)
  • Android: 使用有 AES 加密支持的 zip4j
  • Web: 使用zip.js(只使用unzip,触发下载)

添加倾听器( “ 进度 ” ,...)

addListener(eventName: 'progress', listenerFunc: (event: ZipProgressEvent) => void) => Promise<PluginListenerHandle>

听到进度更新时同时 zip 或者说 unzip 正在运行.

行动开始前登记 事件在网络上表现得最好(只有unzip). 每个活动包括: operationId, (中文(简体) ), source,以及 destination 当多个操作同时运行时, 您可以过滤 . 传递一个独有 operationId 每个电话,如果你提供自己的.

参数类型说明
eventName'progress'事件名称( E)progress) (中文(简体) ).
listenerFunc(event: ZipProgressEvent) => void打电话 ZipProgressEvent 有效载荷(包括 loaded, (中文(简体) ), total,以及 lengthComputable 喜欢 ProgressEvent) (中文(简体) ).

回返情况: Promise<PluginListenerHandle>

自: 8.2.0 (中文(简体) )


zip(...)

zip(options: ZipOptions) => Promise<void>

压缩一个文件或目录以创建 ZIP 归档.

从源文件或目录创建压缩归档。 存档 如果源是一个文件夹,则将包含整个目录结构.

平台专用说明:

  • iOS:不支持密码保护. 如果提供密码,就会被忽略并登录警告.
  • Android:在提供密码时支持AES-256加密.
  • 网:不支持. 如果调用, 则丢出错误 .
参数类型说明
optionsZipOptions- zip操作的配置

自: 7.0.0 (单位:千美元)


unzip(...)

unzip(options: UnzipOptions) => Promise<void>

提取 ZIP 归档到指定的目的目录 .

从 ZIP 归档中提取所有文件和文件夹,同时保存 目录结构。 如果目标目录不存在,则创建该目录.

平台专用说明:

  • iOS:支持标准ZIP档案. 不支持密码保护的档案; 忽略提供的密码 .
  • Android:支持AES加密的有密码的档案. 包括拉链滑行脆弱性保护.
  • Web:将每个文件单独下载到浏览器的下载文件夹. 无法创建目录结构 .
参数类型说明
optionsUnzipOptions- 解析操作的配置

自: 7.0.0 (单位:千美元)


获取 PluginVersion ()

getPluginVersion() => Promise<{ version: string; }>

获取本地插件版本 .

返回本地插件代码的版本, 它遵循 Capacitor 主要版本(如Capacitor 7.x的7.0.0).

回返情况: Promise<{ version: string; }>

自: 7.0.0 (单位:千美元)


接口

插件听筒

Prop类型
remove() => Promise<void>

Zip 进步活动

载荷释放的进展 progress 收听时 zip 财务报告和审定财务报表 unzip。 。 。 .

Prop类型说明自兹
operationIdstring特殊编号 zip 或者说 unzip 电话导致这个事件。 在使用时用此来区分并行操作 addListener。 。 。 .8.3.0 (单位:千美元)
sourcestringsource 从路径 zip 或者说 unzip 选项.8.3.0 (单位:千美元)
destinationstringdestination 从路径 zip 或者说 unzip 选项.8.3.0 (单位:千美元)
operation'zip' | 'unzip'字节是否正在被压缩或提取 .
loadednumber迄今处理的字节( 已知时未压缩大小) 。 与 ProgressEvent.loaded 在网络平台.
totalnumber已知时操作的总字节数, 否则 0。含义与 ProgressEvent.total 在网络平台.
lengthComputableboolean是否为 total (或文件总计)代表此操作的已知长度. 与 ProgressEvent.lengthComputable。 。 。 .
progressnumber比率从 0 改为 1 基于字节 total &gt; 0,否则在可用时文件数.
currentFilestring正在处理的条目的路径或名称 .
filesCompletednumber迄今完成的档案条目数量.
filesTotalnumber档案中已知的总条目 .

Zip 选项

创建 ZIP 归档的选项 .

Prop类型说明默认自兹
sourcestring要压缩的文件或目录的路径 。 这可以是相对于应用程序工作目录的绝对路径或路径. 如果源是一个目录,其所有内容在保留目录结构的同时会被递归压缩. 平台特有注释:- iOS:使用文件://URL或绝对路径. 相对路径由应用的文档目录解决. - Android:对通过Android存储访问框架访问的文件使用绝对文件路径或内容://URIs. - 网络:不支持。 关于iOS和Android, file:// URL( 例如来自 Cordova) FileEntry.nativeURL)和%-编码路径段在zip/unzip运行前实现文件系统路径正常化.7.0.0 (单位:千美元)
destinationstring创建 ZIP 归档的路径 。 目的地路径必须包括.zip文件扩展名. 如果母目录不存在,则会自动创建. 平台特有注释:- iOS:使用文件://URL或绝对路径. 相对路径由应用的文档目录解决. 使用绝对文件路径。 插件将创建任何缺失的父目录 。 - 网络:不支持。 关于iOS和Android, file:// URL 和 %- 编码路径段在 zip 运行前正常化为文件系统路径 .7.0.0 (单位:千美元)
passwordstring加密 ZIP 存档的可选密码 。 提供后,归档会被加密并需要此密码来提取. 在Android上使用AES-256加密. 平台特有说明: - iOS:不支持密码保护. 密码将被忽略, 警告会被登录 。 - Android:通过zip4j库支持AES-256加密. 提取时必须提供密码 。 - 网络:不支持.7.0.0 (单位:千美元)
includeParentFolderboolean是否在 ZIP 归档中包含父文件夹 。 当真实( 默认) 时, 源文件夹本身成为归档中的根目录 。 当错误时,仅包含源文件夹的内容为根级. 此选项仅适用于源是一个目录 。 对于单个文件,此选项被忽略 .true8.0.5 (中文(简体) )
onProgress((event: ZipProgressEvent) => void)仅为此zip操作调用进度更新 。 更喜欢这个 addListener('progress') 当一次运行多个操作时。 听者自动注册并删除.8.3.0 (单位:千美元)
operationIdstring可选操作id. 如果提供,它必须是同时提供的独特产品 zip 财务报告和审定财务报表 unzip 打电话 省略时自动生成 id .8.3.0 (单位:千美元)

解析选项

提取 ZIP 归档的选项 .

Prop类型说明自兹
sourcestringZIP 归档路径取出 。 来源必须是有效的 ZIP 文件 。 如果文件不存在或被损坏,操作会因出错而失败. 平台特有注释:- iOS:使用文件://URL或绝对路径. 相对路径由应用的文档目录解决. - Android:使用绝对文件路径或内容:// 通过Android存储访问框架访问文件的 URI. - Web:使用HTTP/HTTPS URL. 文件会在浏览器中取出并提取. 关于iOS和Android, file:// URL( 例如来自 Cordova) FileEntry.nativeURL) 和 %- 编码的路径段在unzip 运行前实现文件系统路径的正常化 .7.0.0 (单位:千美元)
destinationstring将提取文件的目录路径 。 目的地目录如果不存在,将会被创建. 归档中的所有文件和文件夹都会被取出,同时保留目录结构. 平台特有注释:- iOS:使用文件://URL或绝对路径. 相对路径由应用的文档目录解决. 使用绝对文件路径。 包括防止拉链滑行弱点。 - 网页:不适用。 文件被单独下载到浏览器的下载文件夹. 关于iOS和Android, file:// URL 和 %- 编码路径段在 unzip 运行前实现文件系统路径正常化 .7.0.0 (单位:千美元)
passwordstring用于解密密码保护的档案的可选密码. 如果 ZIP 归档是用密码加密的, 则需要 。 如果密码不正确, 提取会因出错而失败 。 平台特有说明:- iOS:不支持密码保护的ZIP档案. 如果提供密码,则忽略并记录警告。 - Android:支持使用zip4j或标准密码保护的ZIP创建的AES加密档案. - 网络:不支持。 无法在浏览器中提取密码保护的档案 .7.0.0 (单位:千美元)
onProgress((event: ZipProgressEvent) => void)仅为此未zip 操作调用进度更新 。 事件在网络上表现得最好(只有unzip). 更喜欢这个 addListener('progress') 当一次运行多个操作时。 听者自动注册并删除.8.3.0 (单位:千美元)
operationIdstring可选操作id. 如果提供,它必须是同时提供的独特产品 zip 财务报告和审定财务报表 unzip 打电话 省略时自动生成 id .8.3.0 (单位:千美元)

使用量

基本齐平

import { CapacitorZip } from '@capgo/capacitor-zip';

// Zip a directory
await CapacitorZip.zip({
  source: '/path/to/directory',
  destination: '/path/to/output.zip'
});

// Zip a single file
await CapacitorZip.zip({
  source: '/path/to/file.txt',
  destination: '/path/to/output.zip'
});

有密码的 Zip

import { CapacitorZip } from '@capgo/capacitor-zip';

await CapacitorZip.zip({
  source: '/path/to/directory',
  destination: '/path/to/output.zip',
  password: 'mySecurePassword123'
});

基本 Unzip

import { CapacitorZip } from '@capgo/capacitor-zip';

await CapacitorZip.unzip({
  source: '/path/to/archive.zip',
  destination: '/path/to/extract'
});

解开密码

import { CapacitorZip } from '@capgo/capacitor-zip';

await CapacitorZip.unzip({
  source: '/path/to/encrypted.zip',
  destination: '/path/to/extract',
  password: 'mySecurePassword123'
});

获取插件版本

import { CapacitorZip } from '@capgo/capacitor-zip';

const { version } = await CapacitorZip.getPluginVersion();
console.log('Plugin version:', version);

平台支持

平台支助密码保护页:1
iOS系统✅❌使用 ZIPFoundation 库( 不支持密码字)
机器人✅✅使用 zip4j 库保存密码保护的档案, 标准 Java ZIP 非加密
网页⚠️❌有限支持 - 仅触发文件下载

平台限制

iOS系统

  • 密码保护的档案不支持当前 ZIPFoundation 库
  • 如果提供密码, 则会忽略密码并发出控制台警告

机器人

  • 通过zip4j对使用 AES 加密的密码保护的 ZIP 档案提供全面支持

网页

网络实施有以下局限性:

  • 齐普: 不支持( 显示出错)
  • 解齐普: 为归档中的每个文件触发浏览器下载
  • 密码: 不支持密码保护的档案

对于生产网络应用,考虑使用服务器侧解决方案进行zip操作.

文件路径

iOS系统

使用相对于应用程序文档目录或完整路径的路径 :

import { Filesystem, Directory } from '@capacitor/filesystem';

const { uri } = await Filesystem.getUri({
  directory: Directory.Documents,
  path: 'myfile.zip'
});

await CapacitorZip.unzip({
  source: uri,
  destination: Directory.Documents + '/extracted'
});

机器人

使用相对于应用程序的数据目录或完整路径的路径 :

import { Filesystem, Directory } from '@capacitor/filesystem';

const { uri } = await Filesystem.getUri({
  directory: Directory.Data,
  path: 'myfile.zip'
});

await CapacitorZip.unzip({
  source: uri,
  destination: Directory.Data + '/extracted'
});

处理错误

import { CapacitorZip } from '@capgo/capacitor-zip';

try {
  await CapacitorZip.zip({
    source: '/path/to/directory',
    destination: '/path/to/output.zip'
  });
  console.log('Zip created successfully!');
} catch (error) {
  console.error('Failed to create zip:', error);
}

依赖关系

iOS系统

机器人

  • 拉链4j - 提供密码保护的ZIP支持

网页

  • 拉链.js - JavaScript ZIP 库(有限功能)

许可证

麻省理工学院

贷项

马丁·多纳迪乌为 队长

版本与发布记录

@capgo/capacitor-zip 共发布 36 个版本,首次发布于 2025/11/19;过去 12 个月发布了 36 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.2.2latest2026/10/2118 天前
8.2.12026/10/1623 天前
8.2.02026/10/1524 天前
8.1.252026/10/1525 天前
8.1.242026/10/1327 天前
8.1.232026/10/091 个月前

关于 @capgo/capacitor-zip 的常见问题

@capgo/capacitor-zip 是什么?

IOS,Android,和Web上用于拉链和取出文件的免费Capacitor插件.

如何安装 @capgo/capacitor-zip?

在项目目录运行 npm install @capgo/capacitor-zip,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@capacitor/core(>=8.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@capgo/capacitor-zip 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@capgo/capacitor-zip 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@capgo/capacitor-zip 可以商用吗?

@capgo/capacitor-zip 使用 MPL-2.0 许可。弱 Copyleft:可以商用,也可以和闭源代码一起使用;但如果分发时修改了 MPL 授权的文件,这些文件的修改需以 MPL 开源。以上为概括,不构成法律意见,请以许可原文为准。

@capgo/capacitor-zip 的下载量有多少?

根据 npm 官方下载统计,@capgo/capacitor-zip 在 2026/10/09 – 2026/11/07 这 30 天内被下载 43,852 次,日均约 1,462 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@capgo/capacitor-zip 还在维护吗?

最新版本 8.2.2 发布于 2026/10/21(18 天前);至今共发布 36 个版本,其中过去 12 个月发布了 36 个;首次发布于 2025/11/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。