跳过内容

开始

GitHub

Install

安装

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

您可以使用我们的AI辅助设置来安装插件。将__CAPGO_KEEP_0__技能添加到您的AI工具中,使用以下命令:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

复制到剪贴板

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

如果您更喜欢手动设置,请运行以下命令安装插件,并按照以下平台特定的说明进行操作:

终端窗口
bun add @capgo/capacitor-zip
bunx cap sync

Import

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

API 简介

API概述

zip

压缩文件或目录以创建 ZIP 档案。

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

  • iOS: 不支持密码保护。如果提供密码,会被忽略并记录警告。
  • Android: 支持 AES-256 加密,当提供密码时会被支持。
  • Web: 不支持。调用时会抛出错误。
import { CapacitorZip } from '@capgo/capacitor-zip';
// Compress a directory without password
await CapacitorZip.zip({
source: '/path/to/my-folder',
destination: '/path/to/output.zip'
});

解压缩 ZIP 档案到指定的目的地目录。

解压缩 ZIP 档案,保留目录结构,所有文件和目录都被提取。创建目的地目录如果不存在。

平台相关注意事项:

  • iOS: 支持标准 ZIP 档案。密码保护的档案会使用提供的密码解压缩。
  • Android: 支持 AES 加密的档案,包括 zip 漏洞保护。
  • Web: 下载每个文件到浏览器的下载目录。无法创建目录结构。
import { CapacitorZip } from '@capgo/capacitor-zip';
// Extract a standard ZIP archive
await CapacitorZip.unzip({
source: '/path/to/archive.zip',
destination: '/path/to/extract-folder'
});

类型参考

类型参考

ZipOptions

压缩选项

创建 ZIP 压缩包的选项。

export interface ZipOptions {
/**
* Path to the file or directory to compress.
*
* This can be an absolute path or a path relative to the app's working directory.
* If the source is a directory, all its contents will be recursively compressed
* while preserving the directory structure.
*
* Platform-specific notes:
* - iOS: Use file:// URLs or absolute paths. Relative paths are resolved from the app's documents directory.
* - Android: Use absolute file paths or content:// URIs for files accessible via the Android Storage Access Framework.
* - Web: Not supported.
*
* @since 7.0.0
* @example '/Users/app/Documents/my-folder'
* @example '/var/mobile/Containers/Data/Application/.../Documents/file.pdf'
* @example 'file:///storage/emulated/0/Download/document.pdf'
*/
source: string;
/**
* Path where the ZIP archive will be created.
*
* The destination path must include the .zip file extension. If the parent
* directory doesn't exist, it will be created automatically.
*
* Platform-specific notes:
* - iOS: Use file:// URLs or absolute paths. Relative paths are resolved from the app's documents directory.
* - Android: Use absolute file paths. The plugin will create any missing parent directories.
* - Web: Not supported.
*
* @since 7.0.0
* @example '/Users/app/Documents/archive.zip'
* @example '/var/mobile/Containers/Data/Application/.../Documents/backup.zip'
* @example 'file:///storage/emulated/0/Download/compressed.zip'
*/
destination: string;
/**
* Optional password for encrypting the ZIP archive.
*
* When provided, the archive will be encrypted and require this password
* to extract. Uses AES-256 encryption on Android.
*
* Platform-specific notes:
* - iOS: Password protection is NOT supported. The password will be ignored and a warning will be logged.
* - Android: Supports AES-256 encryption via zip4j library. The password must be provided during extraction.
* - Web: Not supported.
*
* @since 7.0.0
* @example 'mySecurePassword123'
*/
password?: string;
/**
* Whether to include the parent folder in the ZIP archive.
*
* When true (default), the source folder itself becomes the root directory in the archive.
* When false, only the contents of the source folder are included at the root level.
*
* This option only applies when the source is a directory. For single files, this option is ignored.
*
* @default true
* @since 8.0.5
* @example
* ```typescript
* // With includeParentFolder: true (default)
* // Source: /cache/temp/ containing [database.backup, media/]
* // ZIP contains: temp/database.backup, temp/media/
* await CapacitorZip.zip({
* source: '/cache/temp',
* destination: '/cache/backup.zip',
* includeParentFolder: true
* });
* ```
* @example
* ```typescript
* // With includeParentFolder: false
* // Source: /cache/temp/ containing [database.backup, media/]
* // ZIP contains: database.backup, media/
* await CapacitorZip.zip({
* source: '/cache/temp',
* destination: '/cache/backup.zip',
* includeParentFolder: false
* });
* ```
*/
includeParentFolder?: boolean;
}

解压选项

export interface UnzipOptions {
/**
* Path to the ZIP archive to extract.
*
* The source must be a valid ZIP file. If the file doesn't exist or is
* corrupted, the operation will fail with an error.
*
* Platform-specific notes:
* - iOS: Use file:// URLs or absolute paths. Relative paths are resolved from the app's documents directory.
* - Android: Use absolute file paths or content:// URIs for files accessible via the Android Storage Access Framework.
* - Web: Use HTTP/HTTPS URLs. The file will be fetched and extracted in the browser.
*
* @since 7.0.0
* @example '/Users/app/Documents/archive.zip'
* @example '/var/mobile/Containers/Data/Application/.../Documents/backup.zip'
* @example 'file:///storage/emulated/0/Download/compressed.zip'
* @example 'https://example.com/files/archive.zip' (Web only)
*/
source: string;
/**
* Path to the directory where files will be extracted.
*
* The destination directory will be created if it doesn't exist. All files
* and folders from the archive will be extracted while preserving the
* directory structure.
*
* Platform-specific notes:
* - iOS: Use file:// URLs or absolute paths. Relative paths are resolved from the app's documents directory.
* - Android: Use absolute file paths. Includes protection against zip slip vulnerabilities.
* - Web: Not applicable. Files are downloaded individually to the browser's download folder.
*
* @since 7.0.0
* @example '/Users/app/Documents/extracted'
* @example '/var/mobile/Containers/Data/Application/.../Documents/files'
* @example 'file:///storage/emulated/0/Download/extracted-files'
*/
destination: string;
/**
* Optional password for decrypting password-protected archives.
*
* Required if the ZIP archive was encrypted with a password. If the password
* is incorrect, extraction will fail with an error.
*
* Platform-specific notes:
* - iOS: Supports password-protected ZIP archives.
* - Android: Supports AES-encrypted archives created with zip4j or standard password-protected ZIPs.
* - Web: Not supported. Password-protected archives cannot be extracted in the browser.
*
* @since 7.0.0
* @example 'mySecurePassword123'
*/
password?: string;
}

解压 ZIP 压缩包的选项。

源真谛

源真谛 src/definitions.ts本页面由插件的源代码生成。重新同步公共 API 时,源代码发生变化。

继续从 Getting Started

标题:继续从 Getting Started

如果您正在使用 开始使用 规划仪表板和 API 操作,连接它与 使用 @capgo/capacitor-zip 为使用 @capgo/capacitor-zip 的原生能力 API 概述 为 API 概述 的实现细节 介绍 为介绍 的实现细节 API 密钥 为 API 的实现细节 设备 为 __CAPGO_KEEP_0__ 的实现细节