js-apis-zlib.md 6.0 KB
Newer Older
H
hanhaibin 已提交
1 2 3
# Zip模块(JS端SDK接口)

## 导入模块
W
wanghang 已提交
4 5 6 7 8

```javascript
import zlib from '@ohos.zlib';
```

H
hanhaibin 已提交
9
## zlib.zipFile
Z
zengyawen 已提交
10
zipFile(inFile:string, outFile:string, options: Options): Promise\<void>
H
hanhaibin 已提交
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
压缩接口(Promise形式)。

**系统能力:** SystemCapability.BundleManager.Zlib

**参数:**

| 名称    | 类型                                | 必填 | 描述                                        |
| ------- | ----------------------------------- | ---- | ------------------------------------------- |
| inFile  | string                              | 是   | 指定压缩的文件夹路径或者文件路径            |
| outFile | string                              | 是   | 指定的压缩结果的文件路径(文件的扩展名zip) |
| options | [Options](#options对象可选参数说明) | 否   | 压缩的可选参数                              |

**返回值:**

| 类型           | 说明                                                 |
| -------------- | ---------------------------------------------------- |
| Promise\<void> | ERROR_CODE_OK:压缩成功   ERROR_CODE_ERRNO:压缩失败 |

**示例1:**

```javascript

//【压缩文件 例子1】 
import zlib from '@ohos.zlib'
var inFile = "/xxx/filename.xxx";
var outFile = "/xxx/xxx.zip";
37 38 39 40 41
var options = {
  level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,
  memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,
  strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY
};
H
hanhaibin 已提交
42 43

zlib.zipFile(inFile, outFile, options).then((data) => {
44
    console.log("zipFile result:" + data);
H
hanhaibin 已提交
45 46 47 48 49 50 51 52 53 54 55 56 57
}).catch((err)=>{
    console.log("catch((err)=>" + err);
});

```

**示例2:**

```
// 【压缩文件夹 例子2】
import zlib from '@ohos.zlib'
var inFile = "/xxx/xxx";
var outFile = "/xxx/xxx.zip";
58 59 60 61 62
var options = {
  level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,
  memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,
  strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY
};
H
hanhaibin 已提交
63

64
zlib.zipFile(inFile , outFile, options).then((data) => {
65
    console.log("zipFile result:" + data);
H
hanhaibin 已提交
66 67 68 69 70 71 72
}).catch((err)=>{
    console.log("catch((err)=>" + err);
});
```

## zlib.unzipFile

Z
zengyawen 已提交
73
unzipFile(inFile:string, outFile:string, options: Options): Promise\<void>
H
hanhaibin 已提交
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

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

**系统能力:** SystemCapability.BundleManager.Zlib

**参数:**

| 名称    | 类型                                | 必填 | 描述                                |
| ------- | ----------------------------------- | ---- | ----------------------------------- |
| inFile  | string                              | 是   | 指定解压的文件路径(文件扩展名zip) |
| outFile | string                              | 是   | 指定的解压文件路径                  |
| options | [Options](#options对象可选参数说明) | 否   | 解压的可选参数                      |

**返回值:**

| 类型           | 说明                                                         |
| -------------- | ------------------------------------------------------------ |
| Promise\<void> | ERROR_CODE_OK:解压成功   ERROR_CODE_ERRNO:解压失败返回执行结果。 |

**示例:**

```javascript
// 【解压例子1】 
import zlib from '@ohos.zlib'
var inFile = "/xx/xxx.zip";
var outFile = "/xxx";

101 102 103 104 105
let options = {
  level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,
  memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,
  strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY
};
H
hanhaibin 已提交
106
zlib.unzipFile(inFile, outFile, options).then((data) => {
107
    console.log("unzipFile result:" + data);
H
hanhaibin 已提交
108 109 110 111 112 113 114 115
}).catch((err)=>{
    console.log("catch((err)=>" + err);
})
	
```

## Options对象可选参数说明

116
| 参数                        | 说明                                                         |
H
hanhaibin 已提交
117 118 119 120 121 122 123
| --------------------------- | ------------------------------------------------------------ |
| level?: CompressLeve        | [参考zip.CompressLevel枚举定义](#zip.CompressLevel压缩等级可选参数说明) |
| memLevel?: MemLevel         | [参考zip.MemLevel枚举定义](#zip.MemLevel可选参数说明)        |
| strategy?: CompressStrategy | [参考zip.CompressStrategy枚举定义](#zip.CompressStrategy压缩策略可选参数说明) |

## zip.MemLevel可选参数说明

124
| 参数                        | 说明                                                         |
H
hanhaibin 已提交
125
| ----------------- | -------------------------------- |
126
| MEM_LEVEL_MIN     | zip 接口在压缩过程中最小使用内存 |
H
hanhaibin 已提交
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
| MEM_LEVEL_MAX     | zip 接口在压缩过程中最大使用内存 |
| MEM_LEVEL_DEFAULT | zip 接口在压缩过程中默认使用内存 |

## zip.CompressLevel压缩等级可选参数说明

| 参数                                    | 描述              |
| --------------------------------------- | ----------------- |
| COMPRESS_LEVEL_NO_COMPRESSION : 0       | 压缩率为0压缩等级 |
| COMPRESS_LEVEL_BEST_SPEED : 1           | 最佳速度压缩等级  |
| COMPRESS_LEVEL_BEST_COMPRESSION :9      | 最佳压缩等级      |
| COMPRESS_LEVEL_DEFAULT_COMPRESSION :-1 | 默认压缩等级      |

## zip.CompressStrategy压缩策略可选参数说明

| 参数                                   | 描述                     |
| -------------------------------------- | ------------------------ |
| COMPRESS_STRATEGY_DEFAULT_STRATEGY : 0 | 常规数据策略             |
| COMPRESS_STRATEGY_FILTERED : 1         | 过滤器产生的数据压缩策略 |
| COMPRESS_STRATEGY_HUFFMAN_ONLY : 2     | 霍夫曼编码格式压缩策略   |
146
| COMPRESS_STRATEGY_RLE : 3              | 游标编码压缩策略         |
H
hanhaibin 已提交
147 148 149 150 151 152 153 154
| COMPRESS_STRATEGY_FIXED : 4            | 固定的压缩策略           |

## zip.ErrorCode接口返回值参数说明

| 参数                 | 描述         |
| -------------------- | ------------ |
| ERROR_CODE_OK: 0     | 函数调用成功 |
| ERROR_CODE_ERRNO:- 1 | 函数调用失败 |