qiao.plugin.zip:nodejs下zip和unzip
2021/5/4 1:25:39
本文主要是介绍qiao.plugin.zip:nodejs下zip和unzip,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
【前言】
用nodejs怎么压缩文件为zip,或者解压缩zip文件,有两个比较成熟的npm库:
https://www.npmjs.com/package/adm-zip
https://www.npmjs.com/package/archiver
但是两者都有一些问题,下面试简介:
admin-zip:https://blog.csdn.net/uikoo9/article/details/116381396
archiver:https://blog.csdn.net/uikoo9/article/details/116381493
【qiao.plugin.zip】
综上,封装了一个npm包:qiao.plugin.zip,https://www.npmjs.com/package/qiao.plugin.zip
具备以下功能:
1.支持压缩,支持解压缩
2.支持操作文件,支持操作文件夹
3.若目标地址不存在会自动创建
4.不存在中文乱码问题
5.多层压缩解压缩正常
【unzip】
var qiaoPluginZip = require('qiao.plugin.zip'); var test = function(){ var zipFile = 'd:/test1.zip'; var destFolder = 'd:/test2/'; qiaoPluginZip.unzip(zipFile, destFolder); }; test();
【zipFileSync】
var qiaoPluginZip = require('qiao.plugin.zip'); var test = async function(){ var sourceFile = 'd:/test.js'; var destZip = 'd:/test22.zip'; try{ var msg = await qiaoPluginZip.zipFileSync(sourceFile, destZip); console.log(msg); }catch(e){ console.log(e); } }; test();
【zipFolderSync】
var qiaoPluginZip = require('qiao.plugin.zip'); var test = async function(){ var sourceFolder = 'd:/test/'; var destZip = 'd:/test24.zip'; try{ var msg = await qiaoPluginZip.zipFolderSync(sourceFolder, destZip); console.log(msg); }catch(e){ console.log(e); } }; test();
【zipFile】
var qiaoPluginZip = require('qiao.plugin.zip'); var test = function(){ var sourceFile = 'd:/test.js'; var destZip = 'd:/test22.zip'; qiaoPluginZip.zipFile(sourceFile, destZip, function(err, msg){ if(err) throw err; console.log(msg); }); }; test();
【zipFolder】
var qiaoPluginZip = require('qiao.plugin.zip'); var test = function(){ var sourceFolder = 'd:/test/'; var destZip = 'd:/test23.zip'; qiaoPluginZip.zipFolder(sourceFolder, destZip, function(err, msg){ if(err) throw err; console.log(msg); }); }; test();
【test-01】
测试:解压缩,zip文件路径多层级
期望:zip文件路径的多层级不影响解压缩
结论:通过
'use strict'; var qiaoPluginZip = require('../../lib/qiao.plugin.zip.js'); var test = function(){ var zipFile = 'd:/qiao.plugin.zip/demo01/test.zip'; var destFolder = 'd:/'; qiaoPluginZip.unzip(zipFile, destFolder); }; test();
【test-02】
测试:解压缩,目标文件路径多层级
期望:目标文件路径的多层级不影响解压缩
结论:通过
'use strict'; var qiaoPluginZip = require('../../lib/qiao.plugin.zip.js'); var test = function(){ var zipFile = 'd:/qiao.plugin.zip/demo02/test.zip'; var destFolder = 'd:/qiao.plugin.zip/demo02'; qiaoPluginZip.unzip(zipFile, destFolder); }; test();
【test-03】
测试:解压缩,目标文件路径多层级,且不存在
期望:目标文件路径多层级且不存在不影响解压缩
结论:通过
'use strict'; var qiaoPluginZip = require('../../lib/qiao.plugin.zip.js'); var test = function(){ var zipFile = 'd:/qiao.plugin.zip/demo03/test.zip'; var destFolder = 'd:/qiao.plugin.zip/demo99';//这个path不存在 qiaoPluginZip.unzip(zipFile, destFolder); }; test();
【test-04】
测试:解压缩,zip中文件带有中文名
期望:解压缩后中文文件名不乱码
结论:通过
'use strict'; var qiaoPluginZip = require('../../lib/qiao.plugin.zip.js'); var test = function(){ var zipFile = 'd:/qiao.plugin.zip/demo04/test.zip';// 这个zip中的文件为test-你好.js var destFolder = 'd:/qiao.plugin.zip/demo04'; qiaoPluginZip.unzip(zipFile, destFolder); }; test();
【test-05】
测试:解压缩,zip中文件夹嵌套
期望:zip中多文件夹嵌套,多文件可以正常解压缩
结论:通过
'use strict'; var qiaoPluginZip = require('../../lib/qiao.plugin.zip.js'); var test = function(){ var zipFile = 'd:/qiao.plugin.zip/demo05/test.zip';// 这个zip中多文件夹嵌套,多文件,中文名文件 var destFolder = 'd:/qiao.plugin.zip/demo05'; qiaoPluginZip.unzip(zipFile, destFolder); }; test();
【test-06】
测试:压缩文件,待压缩文件路径多层级
期望:待压缩文件路径多层级,压缩后不引入
结论:通过
var qiaoPluginZip = require('../../lib/qiao.plugin.zip.js'); var test = async function(){ try{ var sourceFile = 'd:/qiao.plugin.zip/demo06/test.js'; var destZip = 'd:/qiao.plugin.zip/demo06/test.zip'; await qiaoPluginZip.zipFileSync(sourceFile, destZip); }catch(e){ console.log(e); } }; test();
【test-07】
测试:压缩文件,待压缩文件包含中文
期望:压缩后文件中文无乱码
结论:通过
'use strict'; var qiaoPluginZip = require('../../lib/qiao.plugin.zip.js'); var test = async function(){ try{ var sourceFile = 'd:/qiao.plugin.zip/demo07/test-你好.js'; var destZip = 'd:/qiao.plugin.zip/demo07/test.zip'; await qiaoPluginZip.zipFileSync(sourceFile, destZip); }catch(e){ console.log(e); } }; test();
【test-08】
测试:压缩文件,目标zip路径不存在
期望:可以自动创建
结论:通过
'use strict'; var qiaoPluginZip = require('../../lib/qiao.plugin.zip.js'); var test = async function(){ try{ var sourceFile = 'd:/qiao.plugin.zip/demo07/test-你好.js'; var destZip = 'd:/qiao.plugin.zip/demo98/test.zip';// demo98这个路径不存在 await qiaoPluginZip.zipFileSync(sourceFile, destZip); }catch(e){ console.log(e); } }; test();
【test-09】
测试:压缩文件夹,目标文件夹多层级
期望:可将该文件夹下的所有文件文件夹正确压缩
结论:通过
'use strict'; var qiaoPluginZip = require('../../lib/qiao.plugin.zip.js'); var test = async function(){ try{ var sourceFolder = 'd:/test';// 该路径下多文件夹,多文件等 var destZip = 'd:/qiao.plugin.zip/demo08/test.zip'; await qiaoPluginZip.zipFolderSync(sourceFolder, destZip); }catch(e){ console.log(e); } }; test();
【test-10】
测试:压缩文件夹,目标文件夹压缩后包一层
期望:压缩文件夹并设置subdir属性生效
结论:通过
'use strict'; var qiaoPluginZip = require('../../lib/qiao.plugin.zip.js'); var test = async function(){ try{ var sourceFolder = 'd:/test';// 该路径下多文件夹,多文件等 var destZip = 'd:/qiao.plugin.zip/demo09/test.zip'; await qiaoPluginZip.zipFolderSync(sourceFolder, destZip, 'test'); }catch(e){ console.log(e); } }; test();
【test-11】
测试:压缩文件夹,目标zip路径不存在
期望:可以自动创建
结论:通过
'use strict'; var qiaoPluginZip = require('../../lib/qiao.plugin.zip.js'); var test = async function(){ try{ var sourceFolder = 'd:/test';// 该路径下多文件夹,多文件等 var destZip = 'd:/qiao.plugin.zip/demo97/test.zip';// demo97不存在 await qiaoPluginZip.zipFolderSync(sourceFolder, destZip, 'test'); }catch(e){ console.log(e); } }; test();
这篇关于qiao.plugin.zip:nodejs下zip和unzip的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-27使用js将ETH账户的资产打散其他账户web3
- 2024-09-27我轻松地将我的 React.js 应用程序翻译成了多种语言。下面是我是如何做到的... ??
- 2024-09-27?? 使用 useMemo 和 useCallback 加速 React:告别缓慢的重新渲染!??
- 2024-09-27Vue CLI多环境配置教程:新手入门指南
- 2024-09-27Vue CLI多环境配置教程:快速入门指南
- 2024-09-27Vue CLI教程:新手入门指南
- 2024-09-27Vue CLI教程:初学者快速入门指南
- 2024-09-27Vue3公共组件教程:入门与实践
- 2024-09-27Vue3公共组件教程:新手入门指南
- 2024-09-27Vue3教程:初学者快速入门指南