壓縮解壓縮文件的能力

2024-01-23 13:06 更新

本模塊提供壓縮解壓縮文件的能力

說明

本模塊首批接口從API version 7開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨標(biāo)記接口的起始版本。

導(dǎo)入模塊

  1. import zlib from '@ohos.zlib';

zlib.zipFile(deprecated)

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

壓縮接口(Promise形式)。

從api9開始不再維護(hù),建議使用zlib.compressFile

系統(tǒng)能力: SystemCapability.BundleManager.Zlib

參數(shù):

參數(shù)名

類型

必填

說明

inFile

string

指定壓縮的文件夾路徑或者文件路徑,對應(yīng)的路徑參考FA模型,Stage模型

outFile

string

指定壓縮結(jié)果的文件路徑(文件的擴展名zip)。

options

Options

壓縮的可選參數(shù)。

返回值:

類型

說明

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>

解壓文件,解壓完成返回執(zhí)行結(jié)果(Promise形式)。

從api9開始不再看護(hù),建議使用zlib.decompressFile

系統(tǒng)能力: SystemCapability.BundleManager.Zlib

參數(shù):

參數(shù)名

類型

必填

說明

inFile

string

指定待解壓的文件夾路徑或者文件路徑,對應(yīng)的路徑參考FA模型,stage模型。

outFile

string

指定的解壓文件路徑。

options

Options

解壓的可選參數(shù)。

返回值:

類型

說明

Promise<void>

ERROR_CODE_OK:解壓成功;

ERROR_CODE_ERRNO:解壓失敗返回執(zhí)行結(jié)果。

示例:

  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;

壓縮文件,壓縮的結(jié)果通過callback返回。成功時返回null,失敗時返回錯誤碼ID。

系統(tǒng)能力: SystemCapability.BundleManager.Zlib

參數(shù):

參數(shù)名

類型

必填

說明

inFile

string

指定壓縮的文件夾路徑或者文件路徑,對應(yīng)的路徑參考FA模型,stage模型。

outFile

string

指定壓縮結(jié)果的文件路徑。

options

Options

壓縮的配置參數(shù)。

AsyncCallback<**void**>

callback

壓縮時的回調(diào)函數(shù)。

相關(guān)錯誤碼

以下錯誤碼的詳細(xì)介紹請參見ohos.zlib錯誤碼。

錯誤碼ID

錯誤信息

900001

The Input source file is invalid.

900002

The Input destination file is invalid.

示例

  1. // 【壓縮文件 例子1】
  2. // 代碼中使用的路徑需為應(yīng)用的沙箱路徑,如/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>;

壓縮文件,壓縮的結(jié)果通過promise返回,成功時返回null,失敗時返回錯誤碼。

系統(tǒng)能力: SystemCapability.BundleManager.Zlib

參數(shù):

參數(shù)名

類型

必填

說明

inFile

string

指定壓縮的文件夾路徑或者文件路徑,對應(yīng)的路徑參考FA模型,stage模型。

outFile

string

指定壓縮結(jié)果的文件路徑。

options

Options

壓縮的配置參數(shù)。

相關(guān)錯誤碼

以下錯誤碼的詳細(xì)介紹請參見ohos.zlib錯誤碼

錯誤碼ID

錯誤信息

900001

The Input source file is invalid.

900002

The Input destination file is invalid.

  1. // 【壓縮文件 例子2】
  2. // 代碼中使用的路徑需為應(yīng)用的沙箱路徑,如/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;

解壓文件,解壓的結(jié)果通過callback返回,成功時返回null,失敗時返回錯誤碼。

系統(tǒng)能力: SystemCapability.BundleManager.Zlib

參數(shù):

參數(shù)名

類型

必填

說明

inFile

string

指定的待解壓縮文件的文件路徑,對應(yīng)的路徑參考FA模型stage模型。

outFile

string

指定的解壓后的目錄路徑。

options

Options

解壓的配置參數(shù)。

AsyncCallback<**void**>

callback

解壓是的回調(diào)函數(shù)。

相關(guān)錯誤碼

以下錯誤碼的詳細(xì)介紹請參見ohos.zlib錯誤碼。

錯誤碼ID

錯誤信息

900001

The Input source file is invalid.

900002

The Input destination file is invalid.

示例

  1. // 【解壓縮 例子1】
  2. // 代碼中使用的路徑需為應(yīng)用的沙箱路徑,如/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>;

解壓文件,解壓的結(jié)果通過promise返回,成功時返回null,失敗時返回錯誤碼。

系統(tǒng)能力: SystemCapability.BundleManager.Zlib

參數(shù):

參數(shù)名

類型

必填

說明

inFile

string

指定的待解壓縮文件的文件路徑,對應(yīng)的路徑參考FA模型,stage模型。

outFile

string

指定的解壓后的目錄路徑。

options

Options

解壓時的配置參數(shù)。

相關(guān)錯誤碼

以下錯誤碼的詳細(xì)介紹請參見ohos.zlib錯誤碼。

錯誤碼ID

錯誤信息

900001

The Input source file is invalid.

900002

The Input destination file is invalid.

  1. // 【解壓縮 例子2】
  2. // 代碼中使用的路徑需為應(yīng)用的沙箱路徑,如/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

系統(tǒng)能力: SystemCapability.BundleManager.Zlib

名稱

類型

可讀

可寫

說明

level

CompressLevel

參考zip.CompressLevel枚舉定義。

memLevel

MemLevel

參考zip.MemLevel枚舉定義。

strategy

CompressStrategy

參考zip.CompressStrategy枚舉定義。

zip.CompressLevel

系統(tǒng)能力: SystemCapability.BundleManager.Zlib

名稱

說明

COMPRESS_LEVEL_NO_COMPRESSION

0

壓縮率為0壓縮等級。

COMPRESS_LEVEL_BEST_SPEED

1

最佳速度壓縮等級。

COMPRESS_LEVEL_BEST_COMPRESSION

9

最佳壓縮等級。

COMPRESS_LEVEL_DEFAULT_COMPRESSION

-1

默認(rèn)壓縮等級。

zip.MemLevel

系統(tǒng)能力: SystemCapability.BundleManager.Zlib

名稱

說明

MEM_LEVEL_MIN

1

zip 接口在壓縮過程中最小使用內(nèi)存。

MEM_LEVEL_MAX

9

zip 接口在壓縮過程中最大使用內(nèi)存。

MEM_LEVEL_DEFAULT

8

zip 接口在壓縮過程中默認(rèn)使用內(nèi)存。

zip.CompressStrategy

系統(tǒng)能力: SystemCapability.BundleManager.Zlib

名稱

說明

COMPRESS_STRATEGY_DEFAULT_STRATEGY

0

常規(guī)數(shù)據(jù)策略。

COMPRESS_STRATEGY_FILTERED

1

過濾器產(chǎn)生的數(shù)據(jù)壓縮策略。

COMPRESS_STRATEGY_HUFFMAN_ONLY

2

霍夫曼編碼格式壓縮策略。

COMPRESS_STRATEGY_RLE

3

游標(biāo)編碼壓縮策略。

COMPRESS_STRATEGY_FIXED

4

固定的壓縮策略。

zip.ErrorCode

系統(tǒng)能力: SystemCapability.BundleManager.Zlib

名稱

說明

ERROR_CODE_OK

0

函數(shù)調(diào)用成功。

ERROR_CODE_ERRNO

-1

函數(shù)調(diào)用失敗。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號