• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Zip模块(JS端SDK接口)
2
3> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
4> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
5
6## 使用限制
7
8无。
9## 导入模块
10
11```javascript
12import zlib from '@ohos.zlib';
13```
14
15## zlib.zipFile
16zipFile(inFile:string, outFile:string, options: Options): Promise<void>
17
18压缩接口(Promise形式)。
19
20**系统能力:** SystemCapability.BundleManager.Zlib
21
22**参数:**
23
24| 参数名  | 类型                | 必填 | 描述                                                         |
25| ------- | ------------------- | ---- | ------------------------------------------------------------ |
26| inFile  | string              | 是   | 指定压缩的文件夹路径或者文件路径,对应的路径参考[FA模型](js-apis-Context.md),[stage模型](js-apis-application-context.md) |
27| outFile | string              | 是   | 指定的压缩结果的文件路径(文件的扩展名zip)                  |
28| options | [Options](#options) | 否   | 压缩的可选参数                                               |
29
30**返回值:**
31
32| 类型           | 说明                                                 |
33| -------------- | ---------------------------------------------------- |
34| Promise\<void> | ERROR_CODE_OK:压缩成功   ERROR_CODE_ERRNO:压缩失败 |
35
36**示例1:**
37
38```javascript
39
40//【压缩文件 例子1】
41import zlib from '@ohos.zlib'
42var inFile = "/xxx/filename.xxx";
43var outFile = "/xxx/xxx.zip";
44var options = {
45  level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,
46  memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,
47  strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY
48};
49
50zlib.zipFile(inFile, outFile, options).then((data) => {
51    console.log("zipFile result:" + data);
52}).catch((err)=>{
53    console.log("catch((err)=>" + err);
54});
55
56```
57
58**示例2:**
59
60```
61// 【压缩文件夹 例子2】
62import zlib from '@ohos.zlib'
63var inFile = "/xxx/xxx";
64var outFile = "/xxx/xxx.zip";
65var options = {
66  level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,
67  memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,
68  strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY
69};
70
71zlib.zipFile(inFile , outFile, options).then((data) => {
72    console.log("zipFile result:" + data);
73}).catch((err)=>{
74    console.log("catch((err)=>" + err);
75});
76```
77
78## zlib.unzipFile
79
80unzipFile(inFile:string, outFile:string, options: Options): Promise&lt;void&gt;
81
82解压文件,解压完成返回执行结果(Promise形式)。
83
84**系统能力:** SystemCapability.BundleManager.Zlib
85
86**参数:**
87
88| 参数名  | 类型                | 必填 | 描述                                                         |
89| ------- | ------------------- | ---- | ------------------------------------------------------------ |
90| inFile  | string              | 是   | 指定压缩的文件夹路径或者文件路径,对应的路径参考[FA模型](js-apis-Context.md),[stage模型](js-apis-application-context.md) |
91| outFile | string              | 是   | 指定的解压文件路径                                           |
92| options | [Options](#options) | 否   | 解压的可选参数                                               |
93
94**返回值:**
95
96| 类型           | 说明                                                         |
97| -------------- | ------------------------------------------------------------ |
98| Promise\<void> | ERROR_CODE_OK:解压成功   ERROR_CODE_ERRNO:解压失败返回执行结果。 |
99
100**示例:**
101
102```javascript
103// 【解压例子1】
104import zlib from '@ohos.zlib'
105var inFile = "/xx/xxx.zip";
106var outFile = "/xxx";
107
108let options = {
109  level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,
110  memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,
111  strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY
112};
113zlib.unzipFile(inFile, outFile, options).then((data) => {
114    console.log("unzipFile result:" + data);
115}).catch((err)=>{
116    console.log("catch((err)=>" + err);
117})
118
119```
120
121## Options
122
123**系统能力:** SystemCapability.BundleManager.Zlib
124
125| 参数名   | 类型             | 必填 | 说明                                                      |
126| -------- | ---------------- | ---- | --------------------------------------------------------- |
127| level    | CompressLeve     | 否   | [参考zip.CompressLevel枚举定义](#zip.CompressLevel)       |
128| memLevel | MemLevel         | 否   | [参考zip.MemLevel枚举定义](#zip.MemLevel)                 |
129| strategy | CompressStrategy | 否   | [参考zip.CompressStrategy枚举定义](#zip.CompressStrategy) |
130
131## zip.MemLevel
132
133**系统能力:** SystemCapability.BundleManager.Zlib
134
135| 名称              | 值   | 说明                             |
136| ----------------- | ---- | -------------------------------- |
137| MEM_LEVEL_MIN     | 1    | zip 接口在压缩过程中最小使用内存 |
138| MEM_LEVEL_MAX     | 9    | zip 接口在压缩过程中最大使用内存 |
139| MEM_LEVEL_DEFAULT | 8    | zip 接口在压缩过程中默认使用内存 |
140
141## zip.CompressLevel
142
143**系统能力:** SystemCapability.BundleManager.Zlib
144
145| 名称                               | 值   | 说明              |
146| ---------------------------------- | ---- | ----------------- |
147| COMPRESS_LEVEL_NO_COMPRESSION      | 0    | 压缩率为0压缩等级 |
148| COMPRESS_LEVEL_BEST_SPEED          | 1    | 最佳速度压缩等级  |
149| COMPRESS_LEVEL_BEST_COMPRESSION    | 9    | 最佳压缩等级      |
150| COMPRESS_LEVEL_DEFAULT_COMPRESSION | -1   | 默认压缩等级      |
151
152## zip.CompressStrategy
153
154**系统能力:** SystemCapability.BundleManager.Zlib
155
156| 名称                               | 值   | 说明                     |
157| ---------------------------------- | ---- | ------------------------ |
158| COMPRESS_STRATEGY_DEFAULT_STRATEGY | 0    | 常规数据策略             |
159| COMPRESS_STRATEGY_FILTERED         | 1    | 过滤器产生的数据压缩策略 |
160| COMPRESS_STRATEGY_HUFFMAN_ONLY     | 2    | 霍夫曼编码格式压缩策略   |
161| COMPRESS_STRATEGY_RLE              | 3    | 游标编码压缩策略         |
162| COMPRESS_STRATEGY_FIXED            | 4    | 固定的压缩策略           |
163
164## zip.ErrorCode
165
166**系统能力:** SystemCapability.BundleManager.Zlib
167
168| 名称             | 值   | 说明         |
169| ---------------- | ---- | ------------ |
170| ERROR_CODE_OK    | 0    | 函数调用成功 |
171| ERROR_CODE_ERRNO | -1   | 函数调用失败 |
172