GitHub上一些有用的JavaScript的文件压缩解压缩库推举__第1页
GitHub上一些有用的JavaScript的文件压缩解压缩库推举__第2页
GitHub上一些有用的JavaScript的文件压缩解压缩库推举__第3页
GitHub上一些有用的JavaScript的文件压缩解压缩库推举__第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、GitHub上一些有用的JavaScript的文件压缩解压缩库推举_ 这篇文章主要介绍了GitHub上一些有用的JavaScript的文件压缩解压缩库推举,推举的这几个都是支持zip格式的,需要的伴侣可以参考下 项目里要用到archive和unarchive整个已存在的folder,在找解决方案的时候尝试了一些当前比较流行的library,主要有adm-zip, JSZip, archiver等。 一.Use adm-zip adm-zip支持archive和unarchive一个或多个文件或者整个文件夹的功能,用法特别的简洁便利。 var adm_zip = require(adm-zip)

2、; /creating archives var zip = new adm_zip(); zip.addLocalFolder(archiver); zip.writeZip(adm/adm-archive.zip); /extracting archives var unzip = new adm_zip(adm/adm-archive.zip); unzip.extractAllTo(adm/adm-unarchive/, /*overwrite*/true); Pros and cons: 1. 同时实现了压缩和解压,而且只要供应路径就可以对已存在的文件或文件夹进行操作,实现了许多接口

3、,用法便利简洁。 2. 本身存在bug,有的时候解压文件没法还原到原来的文件。Hope慢慢这些bug会fix好。 二. UseJSZip 这个库在用法的时候需要把文件一个个增加到zip对象中,而且需要把内容也手动添加,再用法写文件操作把内存中的zip对象转成物理存储。所以假如是对于一整个文件夹来说,就很麻烦,需要遍历文件夹。 var JSZip = require(jszip); var fs = require(fs); var zip = new JSZip(); var file_content = fs.readFileSync(archive/a.txt); zip.file(a.t

4、xt,file_content); var data = fs.readFileSync(archive/img/pic.jpeg); zip.file(img/pic.jpeg, data, base64: true); var zipfolder = zip.generate(type:nodebuffer); fs.writeFile(jszip.zip, zipfolder, function(err) if (err) throw err; ); JSZip里面也有个folder方法,但它只是用来切换zip对象内部的虚拟路径,比如zip.folder(img).file(a.txt)

5、就是在zip中添加一个img子名目,在下面创建a.txt,效果等同于zip.file(img/a.txt)。这里还需要留意的是,文件的内容都需要手动添加,假如仅仅是zip.file(a.txt);只是在zip对象中创建了内容为空的txt文件,而且它只是存在于内存中,需要写文件操作后才会真正存到磁盘。 Pros and cons: 1.对于一些实时接受到的数据转成zip的比较适用。 2.对于已存在的文件夹操作不便,需要一个个把内容添加到zip对象,再转成文件。 3.许多编码需要留意。 4.只有压缩功能。 三. Use archiver and unzip 这个组合是最终我用法的,比较靠谱,用法也

6、比较简洁,其中archiver很强大,支持zip格式tar格式,只需要供应路径就可以压缩已存在的文件夹。 压缩: var fs = require(fs); var archiver = require(archiver); var output = fs.createWriteStream(archiver-unzip.zip); var archive = archiver(zip); archive.on(error, function(err) throw err; ); archive.pipe(output); archive.bulk( src: archiver/* ); archive.finalize(); 解压: var fs = require(fs); var unzip = require(unzip); fs.createReadStream(archiver-unzip.zip).pipe(unzip.Extract( path: unarchive )

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论