压缩解压缩文件的能力

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

公众号
微信公众号

编程狮公众号