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

## 使用限制
无。
## 导入模块
W
wanghang 已提交
6 7 8 9 10

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

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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
## zlib.zipFile
zipFile(inFile:string, outFile:string, options: Options): Promise<void>;
压缩接口(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";
var options = {};
options.level = zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION;
options.memLevel = zlib.MemLevel.MEM_LEVEL_DEFAULT;
options.strategy = zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY;

zlib.zipFile(inFile, outFile, options).then((data) => {
    if (data == zlib.ErrorCode.ERROR_CODE_OK) {
        console.log("zipFile OK");
    } else {
        console.log("zipFile NG");
    }
}).catch((err)=>{
    console.log("catch((err)=>" + err);
});

```

**示例2:**

```
// 【压缩文件夹 例子2】
import zlib from '@ohos.zlib'
var inFile = "/xxx/xxx";
var outFile = "/xxx/xxx.zip";
var options = {};
options.level = zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION;
options.memLevel = zlib.MemLevel.MEM_LEVEL_DEFAULT;
options.strategy = zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY;

zlib.zipFile(inFile , unzipDir, options).then((data) => {
    if (data == zlib.ErrorCode.ERROR_CODE_OK) {
        console.log("zipFile OK");
    } else {
        console.log("zipFile NG");
    }
}).catch((err)=>{
    console.log("catch((err)=>" + err);
});
```

## zlib.unzipFile

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

解压文件,解压完成返回执行结果(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";

var options = {};
options.level = zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION;
options.memLevel = zlib.MemLevel.MEM_LEVEL_DEFAULT;
options.strategy = zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY;

zlib.unzipFile(inFile, outFile, options).then((data) => {
    if (data == zlib.ErrorCode.ERROR_CODE_OK) {
        console.log("unzipFile OK");
    } else {
        console.log("unzipFile NG");
    }
}).catch((err)=>{
    console.log("catch((err)=>" + err);
})
	
```

## Options对象可选参数说明

| 参数                        |                                                              |
| --------------------------- | ------------------------------------------------------------ |
| level?: CompressLeve        | [参考zip.CompressLevel枚举定义](#zip.CompressLevel压缩等级可选参数说明) |
| memLevel?: MemLevel         | [参考zip.MemLevel枚举定义](#zip.MemLevel可选参数说明)        |
| strategy?: CompressStrategy | [参考zip.CompressStrategy枚举定义](#zip.CompressStrategy压缩策略可选参数说明) |

## zip.MemLevel可选参数说明

| MEM_LEVEL_MIN     | zip 接口在压缩过程中最小使用内存 |
| ----------------- | -------------------------------- |
| 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     | 霍夫曼编码格式压缩策略   |
| OMPRESS_STRATEGY_RLE : 3               | 游标编码压缩策略         |
| COMPRESS_STRATEGY_FIXED : 4            | 固定的压缩策略           |

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

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