GitHub上一些有用的JavaScript的文件壓縮解壓縮庫(kù)推舉__第1頁(yè)
GitHub上一些有用的JavaScript的文件壓縮解壓縮庫(kù)推舉__第2頁(yè)
GitHub上一些有用的JavaScript的文件壓縮解壓縮庫(kù)推舉__第3頁(yè)
GitHub上一些有用的JavaScript的文件壓縮解壓縮庫(kù)推舉__第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、GitHub上一些有用的JavaScript的文件壓縮解壓縮庫(kù)推舉_ 這篇文章主要介紹了GitHub上一些有用的JavaScript的文件壓縮解壓縮庫(kù)推舉,推舉的這幾個(gè)都是支持zip格式的,需要的伴侶可以參考下 項(xiàng)目里要用到archive和unarchive整個(gè)已存在的folder,在找解決方案的時(shí)候嘗試了一些當(dāng)前比較流行的library,主要有adm-zip, JSZip, archiver等。 一.Use adm-zip adm-zip支持archive和unarchive一個(gè)或多個(gè)文件或者整個(gè)文件夾的功能,用法特別的簡(jiǎn)潔便利。 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. 同時(shí)實(shí)現(xiàn)了壓縮和解壓,而且只要供應(yīng)路徑就可以對(duì)已存在的文件或文件夾進(jìn)行操作,實(shí)現(xiàn)了許多接口

3、,用法便利簡(jiǎn)潔。 2. 本身存在bug,有的時(shí)候解壓文件沒法還原到原來的文件。Hope慢慢這些bug會(huì)fix好。 二. UseJSZip 這個(gè)庫(kù)在用法的時(shí)候需要把文件一個(gè)個(gè)增加到zip對(duì)象中,而且需要把內(nèi)容也手動(dòng)添加,再用法寫文件操作把內(nèi)存中的zip對(duì)象轉(zhuǎn)成物理存儲(chǔ)。所以假如是對(duì)于一整個(gè)文件夾來說,就很麻煩,需要遍歷文件夾。 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里面也有個(gè)folder方法,但它只是用來切換zip對(duì)象內(nèi)部的虛擬路徑,比如zip.folder(img).file(a.txt)

5、就是在zip中添加一個(gè)img子名目,在下面創(chuàng)建a.txt,效果等同于zip.file(img/a.txt)。這里還需要留意的是,文件的內(nèi)容都需要手動(dòng)添加,假如僅僅是zip.file(a.txt);只是在zip對(duì)象中創(chuàng)建了內(nèi)容為空的txt文件,而且它只是存在于內(nèi)存中,需要寫文件操作后才會(huì)真正存到磁盤。 Pros and cons: 1.對(duì)于一些實(shí)時(shí)接受到的數(shù)據(jù)轉(zhuǎn)成zip的比較適用。 2.對(duì)于已存在的文件夾操作不便,需要一個(gè)個(gè)把內(nèi)容添加到zip對(duì)象,再轉(zhuǎn)成文件。 3.許多編碼需要留意。 4.只有壓縮功能。 三. Use archiver and unzip 這個(gè)組合是最終我用法的,比較靠譜,用法也

6、比較簡(jiǎn)潔,其中archiver很強(qiáng)大,支持zip格式tar格式,只需要供應(yīng)路徑就可以壓縮已存在的文件夾。 壓縮: 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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論