压缩解压缩文件的能力

2024-01-23 13:06 更新

本模块提供压缩解压缩文件的能力

说明

本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

  1. import zlib from '@ohos.zlib';

zlib.zipFile(deprecated)

zipFile(inFile: string, outFile: string, options: Options): Promise<void>

压缩接口(Promise形式)。

从api9开始不再维护,建议使用zlib.compressFile

系统能力: SystemCapability.BundleManager.Zlib

参数:

参数名

类型

必填

说明

inFile

string

指定压缩的文件夹路径或者文件路径,对应的路径参考FA模型Stage模型

outFile

string

指定压缩结果的文件路径(文件的扩展名zip)。

options

Options

压缩的可选参数。

返回值:

类型

说明

Promise<void>

ERROR_CODE_OK:压缩成功;

ERROR_CODE_ERRNO:压缩失败。

示例1:

  1. //【压缩文件 例子1】
  2. import zlib from '@ohos.zlib';
  3. let inFile = '/xxx/filename.xxx';
  4. let outFile = '/xxx/xxx.zip';
  5. let options = {
  6. level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,
  7. memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,
  8. strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY
  9. };
  10. zlib.zipFile(inFile, outFile, options).then((data) => {
  11. console.log('zipFile result is ' + JSON.stringify(data));
  12. }).catch((err) => {
  13. console.log('error is ' + JSON.stringify(err));
  14. });

示例2:

  1. // 【压缩文件夹 例子2】
  2. import zlib from '@ohos.zlib';
  3. let inFile = '/xxx/xxx';
  4. let outFile = '/xxx/xxx.zip';
  5. let options = {
  6. level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,
  7. memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,
  8. strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY
  9. };
  10. zlib.zipFile(inFile , outFile, options).then((data) => {
  11. console.log('zipFile result is ' + JSON.stringify(data));
  12. }).catch((err)=>{
  13. console.log('error is ' + JSON.stringify(err));
  14. });

zlib.unzipFile(deprecated)

unzipFile(inFile:string, outFile:string, options: Options): Promise<void>

解压文件,解压完成返回执行结果(Promise形式)。

从api9开始不再看护,建议使用zlib.decompressFile

系统能力: SystemCapability.BundleManager.Zlib

参数:

参数名

类型

必填

说明

inFile

string

指定待解压的文件夹路径或者文件路径,对应的路径参考FA模型stage模型

outFile

string

指定的解压文件路径。

options

Options

解压的可选参数。

返回值:

类型

说明

Promise<void>

ERROR_CODE_OK:解压成功;

ERROR_CODE_ERRNO:解压失败返回执行结果。

示例:

  1. // 【解压缩 例子1】
  2. import zlib from '@ohos.zlib';
  3. let inFile = '/xx/xxx.zip';
  4. let outFile = '/xxx';
  5. let options = {
  6. level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,
  7. memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,
  8. strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY
  9. };
  10. zlib.unzipFile(inFile, outFile, options).then((data) => {
  11. console.log('unzipFile result is ' + JSON.stringify(data));
  12. }).catch((err)=>{
  13. console.log('error is ' + JSON.stringify(err));
  14. })

zlib.compressFile9+

compressFile(inFile: string, outFile: string, options: Options, callback: AsyncCallback<void>): void;

压缩文件,压缩的结果通过callback返回。成功时返回null,失败时返回错误码ID。

系统能力: SystemCapability.BundleManager.Zlib

参数:

参数名

类型

必填

说明

inFile

string

指定压缩的文件夹路径或者文件路径,对应的路径参考FA模型stage模型

outFile

string

指定压缩结果的文件路径。

options

Options

压缩的配置参数。

AsyncCallback<**void**>

callback

压缩时的回调函数。

相关错误码

以下错误码的详细介绍请参见ohos.zlib错误码

错误码ID

错误信息

900001

The Input source file is invalid.

900002

The Input destination file is invalid.

示例

  1. // 【压缩文件 例子1】
  2. // 代码中使用的路径需为应用的沙箱路径,如/data/storage/el2/base/haps,也可以通过context获取
  3. import zlib from '@ohos.zlib';
  4. let inFile = '/xxx/filename.xxx';
  5. let outFile = '/xxx/xxx.zip';
  6. let options = {
  7. level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,
  8. memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,
  9. strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY
  10. };
  11. try {
  12. zlib.compressFile(inFile, outFile, options, (errData) => {
  13. if (errData !== null) {
  14. console.log(`errData is errCode:${errData.code} message:${errData.message}`);
  15. }
  16. })
  17. } catch(errData) {
  18. console.log(`errData is errCode:${errData.code} message:${errData.message}`);
  19. }

compressFile(inFile: string, outFile: string, options: Options): Promise<void>;

压缩文件,压缩的结果通过promise返回,成功时返回null,失败时返回错误码。

系统能力: SystemCapability.BundleManager.Zlib

参数:

参数名

类型

必填

说明

inFile

string

指定压缩的文件夹路径或者文件路径,对应的路径参考FA模型stage模型

outFile

string

指定压缩结果的文件路径。

options

Options

压缩的配置参数。

相关错误码

以下错误码的详细介绍请参见ohos.zlib错误码

错误码ID

错误信息

900001

The Input source file is invalid.

900002

The Input destination file is invalid.

  1. // 【压缩文件 例子2】
  2. // 代码中使用的路径需为应用的沙箱路径,如/data/storage/el2/base/haps,也可以通过context获取
  3. import zlib from '@ohos.zlib';
  4. let inFile = '/xxx/filename.xxx';
  5. let outFile = '/xxx/xxx.zip';
  6. let options = {
  7. level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,
  8. memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,
  9. strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY
  10. };
  11. try {
  12. zlib.compressFile(inFile, outFile, options).then((data) => {
  13. console.info('compressFile success');
  14. }).catch((errData) => {
  15. console.log(`errData is errCode:${errData.code} message:${errData.message}`);
  16. })
  17. } catch(errData) {
  18. console.log(`errData is errCode:${errData.code} message:${errData.message}`);
  19. }

zlib.decompressFile9+

decompressFile(inFile: string, outFile: string, options: Options, callback: AsyncCallback<void>): void;

解压文件,解压的结果通过callback返回,成功时返回null,失败时返回错误码。

系统能力: SystemCapability.BundleManager.Zlib

参数:

参数名

类型

必填

说明

inFile

string

指定的待解压缩文件的文件路径,对应的路径参考FA模型stage模型

outFile

string

指定的解压后的目录路径。

options

Options

解压的配置参数。

AsyncCallback<**void**>

callback

解压是的回调函数。

相关错误码

以下错误码的详细介绍请参见ohos.zlib错误码

错误码ID

错误信息

900001

The Input source file is invalid.

900002

The Input destination file is invalid.

示例

  1. // 【解压缩 例子1】
  2. // 代码中使用的路径需为应用的沙箱路径,如/data/storage/el2/base/haps,也可以通过context获取
  3. import zlib from '@ohos.zlib';
  4. let inFile = '/xx/xxx.zip';
  5. let outFile = '/xxx';
  6. let options = {
  7. level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,
  8. memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,
  9. strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY
  10. };
  11. try {
  12. zlib.decompressFile(inFile, outFile, options, (errData) => {
  13. if (errData !== null) {
  14. console.log(`errData is errCode:${errData.code} message:${errData.message}`);
  15. }
  16. })
  17. } catch(errData) {
  18. console.log(`errData is errCode:${errData.code} message:${errData.message}`);
  19. }

decompressFile(inFile: string, outFile: string, options: Options): Promise<void>;

解压文件,解压的结果通过promise返回,成功时返回null,失败时返回错误码。

系统能力: SystemCapability.BundleManager.Zlib

参数:

参数名

类型

必填

说明

inFile

string

指定的待解压缩文件的文件路径,对应的路径参考FA模型stage模型

outFile

string

指定的解压后的目录路径。

options

Options

解压时的配置参数。

相关错误码

以下错误码的详细介绍请参见ohos.zlib错误码

错误码ID

错误信息

900001

The Input source file is invalid.

900002

The Input destination file is invalid.

  1. // 【解压缩 例子2】
  2. // 代码中使用的路径需为应用的沙箱路径,如/data/storage/el2/base/haps,也可以通过context获取
  3. import zlib from '@ohos.zlib';
  4. let inFile = '/xx/xxx.zip';
  5. let outFile = '/xxx';
  6. let options = {
  7. level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,
  8. memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,
  9. strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY
  10. };
  11. try {
  12. zlib.decompressFile(inFile, outFile, options).then((data) => {
  13. console.info('decompressFile success');
  14. }).catch((errData) => {
  15. console.log(`errData is errCode:${errData.code} message:${errData.message}`);
  16. })
  17. } catch(errData) {
  18. console.log(`errData is errCode:${errData.code} message:${errData.message}`);
  19. }

Options

系统能力: SystemCapability.BundleManager.Zlib

名称

类型

可读

可写

说明

level

CompressLevel

参考zip.CompressLevel枚举定义

memLevel

MemLevel

参考zip.MemLevel枚举定义

strategy

CompressStrategy

参考zip.CompressStrategy枚举定义

zip.CompressLevel

系统能力: SystemCapability.BundleManager.Zlib

名称

说明

COMPRESS_LEVEL_NO_COMPRESSION

0

压缩率为0压缩等级。

COMPRESS_LEVEL_BEST_SPEED

1

最佳速度压缩等级。

COMPRESS_LEVEL_BEST_COMPRESSION

9

最佳压缩等级。

COMPRESS_LEVEL_DEFAULT_COMPRESSION

-1

默认压缩等级。

zip.MemLevel

系统能力: SystemCapability.BundleManager.Zlib

名称

说明

MEM_LEVEL_MIN

1

zip 接口在压缩过程中最小使用内存。

MEM_LEVEL_MAX

9

zip 接口在压缩过程中最大使用内存。

MEM_LEVEL_DEFAULT

8

zip 接口在压缩过程中默认使用内存。

zip.CompressStrategy

系统能力: SystemCapability.BundleManager.Zlib

名称

说明

COMPRESS_STRATEGY_DEFAULT_STRATEGY

0

常规数据策略。

COMPRESS_STRATEGY_FILTERED

1

过滤器产生的数据压缩策略。

COMPRESS_STRATEGY_HUFFMAN_ONLY

2

霍夫曼编码格式压缩策略。

COMPRESS_STRATEGY_RLE

3

游标编码压缩策略。

COMPRESS_STRATEGY_FIXED

4

固定的压缩策略。

zip.ErrorCode

系统能力: SystemCapability.BundleManager.Zlib

名称

说明

ERROR_CODE_OK

0

函数调用成功。

ERROR_CODE_ERRNO

-1

函数调用失败。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号