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

J
junyi233 已提交
3 4 5
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

H
hanhaibin 已提交
6
## 使用限制
J
junyi233 已提交
7

H
hanhaibin 已提交
8 9
无。
## 导入模块
W
wanghang 已提交
10 11 12 13 14

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

H
hanhaibin 已提交
15
## zlib.zipFile
J
junyi233 已提交
16 17
zipFile(inFile:string, outFile:string, options: Options): Promise<void>

H
hanhaibin 已提交
18 19 20 21 22 23
压缩接口(Promise形式)。

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

**参数:**

J
junyi233 已提交
24 25 26 27 28
| 参数名  | 类型                | 必填 | 描述                                        |
| ------- | ------------------- | ---- | ------------------------------------------- |
| inFile  | string              | 是   | 指定压缩的文件夹路径或者文件路径            |
| outFile | string              | 是   | 指定的压缩结果的文件路径(文件的扩展名zip) |
| options | [Options](#options) | 否   | 压缩的可选参数                              |
H
hanhaibin 已提交
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

**返回值:**

| 类型           | 说明                                                 |
| -------------- | ---------------------------------------------------- |
| 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";
J
junyi233 已提交
44 45 46 47 48
var options = {
  level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,
  memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,
  strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY
};
H
hanhaibin 已提交
49 50

zlib.zipFile(inFile, outFile, options).then((data) => {
J
junyi233 已提交
51
    console.log("zipFile result:" + data);
H
hanhaibin 已提交
52 53 54 55 56 57 58 59 60 61 62 63 64
}).catch((err)=>{
    console.log("catch((err)=>" + err);
});

```

**示例2:**

```
// 【压缩文件夹 例子2】
import zlib from '@ohos.zlib'
var inFile = "/xxx/xxx";
var outFile = "/xxx/xxx.zip";
J
junyi233 已提交
65 66 67 68 69 70 71 72
var options = {
  level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,
  memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,
  strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY
};

zlib.zipFile(inFile , outFile, options).then((data) => {
    console.log("zipFile result:" + data);
H
hanhaibin 已提交
73 74 75 76 77 78 79
}).catch((err)=>{
    console.log("catch((err)=>" + err);
});
```

## zlib.unzipFile

J
junyi233 已提交
80
unzipFile(inFile:string, outFile:string, options: Options): Promise&lt;void&gt;
H
hanhaibin 已提交
81 82 83 84 85 86 87

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

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

**参数:**

J
junyi233 已提交
88 89 90 91 92
| 参数名  | 类型                | 必填 | 描述                                |
| ------- | ------------------- | ---- | ----------------------------------- |
| inFile  | string              | 是   | 指定解压的文件路径(文件扩展名zip) |
| outFile | string              | 是   | 指定的解压文件路径                  |
| options | [Options](#options) | 否   | 解压的可选参数                      |
H
hanhaibin 已提交
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107

**返回值:**

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

**示例:**

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

J
junyi233 已提交
108 109 110 111 112
let options = {
  level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,
  memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,
  strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY
};
H
hanhaibin 已提交
113
zlib.unzipFile(inFile, outFile, options).then((data) => {
J
junyi233 已提交
114
    console.log("unzipFile result:" + data);
H
hanhaibin 已提交
115 116 117 118 119 120
}).catch((err)=>{
    console.log("catch((err)=>" + err);
})
	
```

J
junyi233 已提交
121
## Options
H
hanhaibin 已提交
122

J
junyi233 已提交
123 124 125 126 127
| 参数名   | 类型             | 必填 | 说明                                                      |
| -------- | ---------------- | ---- | --------------------------------------------------------- |
| level    | CompressLeve     | 否   | [参考zip.CompressLevel枚举定义](#zip.CompressLevel)       |
| memLevel | MemLevel         | 否   | [参考zip.MemLevel枚举定义](#zip.MemLevel)                 |
| userId   | CompressStrategy | 否   | [参考zip.CompressStrategy枚举定义](#zip.CompressStrategy) |
H
hanhaibin 已提交
128

J
junyi233 已提交
129
## zip.MemLevel
H
hanhaibin 已提交
130

J
junyi233 已提交
131 132 133 134 135
| 名称              | 值   | 说明                             |
| ----------------- | ---- | -------------------------------- |
| MEM_LEVEL_MIN     | 1    | zip 接口在压缩过程中最小使用内存 |
| MEM_LEVEL_MIN     | 9    | zip 接口在压缩过程中最大使用内存 |
| MEM_LEVEL_DEFAULT | 8    | zip 接口在压缩过程中默认使用内存 |
H
hanhaibin 已提交
136

J
junyi233 已提交
137
## zip.CompressLevel
H
hanhaibin 已提交
138

J
junyi233 已提交
139 140 141 142 143 144
| 名称                               | 值   | 说明              |
| ---------------------------------- | ---- | ----------------- |
| COMPRESS_LEVEL_NO_COMPRESSION      | 0    | 压缩率为0压缩等级 |
| COMPRESS_LEVEL_BEST_SPEED          | 1    | 最佳速度压缩等级  |
| COMPRESS_LEVEL_BEST_COMPRESSION    | 9    | 最佳压缩等级      |
| COMPRESS_LEVEL_DEFAULT_COMPRESSION | -1   | 默认压缩等级      |
H
hanhaibin 已提交
145

J
junyi233 已提交
146
## zip.CompressStrategy
H
hanhaibin 已提交
147

J
junyi233 已提交
148 149 150 151 152 153 154
| 名称                               | 值   | 说明                     |
| ---------------------------------- | ---- | ------------------------ |
| COMPRESS_STRATEGY_DEFAULT_STRATEGY | 0    | 常规数据策略             |
| COMPRESS_STRATEGY_FILTERED         | 1    | 过滤器产生的数据压缩策略 |
| COMPRESS_STRATEGY_HUFFMAN_ONLY     | 2    | 霍夫曼编码格式压缩策略   |
| COMPRESS_STRATEGY_RLE              | 3    | 游标编码压缩策略         |
| COMPRESS_STRATEGY_FIXED            | 4    | 固定的压缩策略           |
H
hanhaibin 已提交
155

J
junyi233 已提交
156
## zip.ErrorCode
H
hanhaibin 已提交
157

J
junyi233 已提交
158 159 160 161
| 名称             | 值   | 说明         |
| ---------------- | ---- | ------------ |
| ERROR_CODE_OK    | 0    | 函数调用成功 |
| ERROR_CODE_ERRNO | -1   | 函数调用失败 |