欧美激情中文字幕在线_国产区精品视频_免费久久99精品国产自_日韩精品 欧美

NodeJS強(qiáng)大的解壓ZIP 庫(kù)

node-stream-zip庫(kù)是一款非常棒的zip文件壓縮庫(kù),使用方便,能解壓非標(biāo)準(zhǔn)格式的ZIP文件,經(jīng)過(guò)對(duì)比,使用起來(lái)比
hzip,unzipper,zip-local等庫(kù)要方便很多,并且支持同步方法和異步方法。并且和adm-zip一樣,支持解壓制定文件和目錄,adm-zip不能解壓非標(biāo)準(zhǔn)的zip文件,例如APK文件。

功能特性

不加載整個(gè)文檔到內(nèi)存,內(nèi)容按塊讀取

支持大文件

非阻塞讀取,沒(méi)有同步輸入/輸出

快速初始化

無(wú)依賴關(guān)系,沒(méi)有二進(jìn)制插件

內(nèi)置zlib模塊解壓縮

deflate,deflate64,sfx,macosx / windows 內(nèi)置檔案支持

ZIP64支持

使用方法

安裝

npm install node-stream-zip

打開(kāi)ZIP文件

const StreamZip = require('node-stream-zip');
const zip = new StreamZip({
    file: 'archive.zip',
    storeEntries: true
});

// 報(bào)錯(cuò)提示
zip.on('error', err => { /*...*/ });

可用參數(shù):

storeEntries: 默認(rèn)為 true 允許使用您zip存檔中的條目,否則需要使用條目事件
skipEntryNameValidation:默認(rèn)為 true 是否檢查非法字符路徑, 例如../ 或 c:\123。

列出文件列表

zip.on('ready', () => {
    console.log('Entries read: ' + zip.entriesCount);
    for (const entry of Object.values(zip.entries())) {
        const desc = entry.isDirectory ? 'directory' : `${entry.size} bytes`;
        console.log(`Entry ${entry.name}: ${desc}`);
    }
    //讀取完畢,記得關(guān)閉文件
    zip.close()
});

標(biāo)準(zhǔn)流讀取一個(gè)文件

zip.on('ready', () => {
    zip.stream('path/inside/zip.txt', (err, stm) => {
        stm.pipe(process.stdout);
        stm.on('end', () => zip.close());
    });
});

解壓文件到硬盤(pán)

zip.on('ready', () => {
    zip.extract('path/inside/zip.txt', './extracted.txt', err => {
        console.log(err ? 'Extract error' : 'Extracted');
        zip.close();
    });
});

解壓目錄到硬盤(pán)

zip.on('ready', () => {
    fs.mkdirSync('extracted');
    zip.extract('path/inside/zip/', './extracted', err => {
        console.log(err ? 'Extract error' : 'Extracted');
        zip.close();
    });
});

解壓所有文件

zip.on('ready', () => {
    fs.mkdirSync('extracted');
    zip.extract(null, './extracted', (err, count) => {
        console.log(err ? 'Extract error' : `Extracted ${count} entries`);
        zip.close();
    });
});

同步讀取文件到變量

zip.on('ready', () => {
    const data = zip.entryDataSync('path/inside/zip.txt');
    zip.close();
});

解壓文件夾時(shí),監(jiān)聽(tīng)事件

zip.on('extract', (entry, file) => {
    console.log(`Extracted ${entry.name} to ${file}`);
});

加載期間為每個(gè)條目生成一個(gè)條目事件

zip.on('entry', entry => {
    // you can already stream this entry,
    // without waiting until all entry descriptions are read (suitable for very large archives)
    console.log(`Read entry ${entry.name}`);
});

可用方法

zip.entries() - 獲取所有條目描述
zip.entry(name) - 通過(guò)名稱獲取條目描述
zip.stream(entry, function(err, stm) { }) - 通過(guò)條目讀取數(shù)據(jù)
zip.entryDataSync(entry) -同步通過(guò)條目讀取數(shù)據(jù)
zip.close()? 不用的時(shí)候關(guān)閉它

github地址

https://github.com/antelle/node-stream-zip

 

上一篇 解決electron 調(diào)用cmd中文亂碼
下一篇 深入理解JavaScript對(duì)象屬性
目錄
applek

applek管理員

個(gè)人說(shuō)明在個(gè)人中心里面設(shè)置

本月創(chuàng)作熱力圖

最新評(píng)論
小超
小超
7月9日
下個(gè)版本考慮將下載地址加密(防止采集)
Lvtu
Lvtu
7月4日
qiang厲害
評(píng)論于留言建議
chinacnd
chinacnd
6月26日
這個(gè)主題是怎么做到加載速度那么快的?
風(fēng)起云涌
風(fēng)起云涌
6月17日
前臺(tái)投稿現(xiàn)在有點(diǎn)太抽象了 希望可以弄成那種分區(qū)填寫(xiě)的 標(biāo)題,內(nèi)容,圖片,目錄,標(biāo)簽,這樣的
評(píng)論于留言建議
主站蜘蛛池模板: 国产精品久久精品国产| www.xxxx精品| 国产精品欧美亚洲777777| 国产日韩在线精品av| 日本一区二区三不卡| 中文字幕精品在线播放| 国产精品久久久久7777| 国产精品久久久久福利| 精品久久久久久久久久中文字幕| 久久久亚洲国产| 久久久国产精品亚洲一区| 一区二区三区欧美在线| 91国内揄拍国内精品对白| 国产精品日韩三级| 国产日韩久久| 久久国产精品一区二区三区| 久久亚洲国产精品| 久久久久久久av| 久久久久久久久久婷婷| 久久精品99久久| 国产一区二区色| 国产精品男人的天堂| av免费观看国产| 国产精品免费久久久| 国产精品视频免费在线观看| 国产精品香蕉国产| 国产一区二区在线播放| 久久国产精品高清| 韩国一区二区av| 国产精品美女久久久久久免费| 国产精品视频中文字幕91| 国产精品免费久久久久影院| 国产www精品| 一区二区三区四区不卡| 日本久久久久久久| 久久精品99久久久久久久久| 国产精品亚洲二区在线观看| www国产亚洲精品| 天天综合狠狠精品| 免费91麻豆精品国产自产在线观看 | 欧美一级电影久久|