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

NodeJS強大的解壓ZIP 庫

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

功能特性

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

支持大文件

非阻塞讀取,沒有同步輸入/輸出

快速初始化

無依賴關(guān)系,沒有二進制插件

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

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

ZIP64支持

使用方法

安裝

npm install node-stream-zip

打開ZIP文件

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

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

可用參數(shù):

storeEntries: 默認為 true 允許使用您zip存檔中的條目,否則需要使用條目事件
skipEntryNameValidation:默認為 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()
});

標準流讀取一個文件

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

解壓文件到硬盤

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

解壓目錄到硬盤

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();
});

解壓文件夾時,監(jiān)聽事件

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

加載期間為每個條目生成一個條目事件

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) - 通過名稱獲取條目描述
zip.stream(entry, function(err, stm) { }) - 通過條目讀取數(shù)據(jù)
zip.entryDataSync(entry) -同步通過條目讀取數(shù)據(jù)
zip.close()? 不用的時候關(guān)閉它

github地址

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

 

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

applek管理員

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

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

最新評論
小超
小超
7月9日
下個版本考慮將下載地址加密(防止采集)
Lvtu
Lvtu
7月4日
qiang厲害
評論于留言建議
chinacnd
chinacnd
6月26日
這個主題是怎么做到加載速度那么快的?
風(fēng)起云涌
風(fēng)起云涌
6月17日
前臺投稿現(xiàn)在有點太抽象了 希望可以弄成那種分區(qū)填寫的 標題,內(nèi)容,圖片,目錄,標簽,這樣的
評論于留言建議
主站蜘蛛池模板: 国产精品美乳一区二区免费| **亚洲第一综合导航网站| 日韩亚洲成人av在线| 久久伊人精品天天| 欧美一区二区视频在线播放| 国产成人综合精品| 97精品视频在线播放| 一区二区高清视频| 免费毛片一区二区三区久久久| 日韩中文字幕av| 精品国产一区二区三区在线观看| 日韩不卡av| 亚洲五码在线观看视频| y111111国产精品久久婷婷| 国产免费一区| 国产一区视频免费观看| 久久久久久久久久久久av| 日本精品一区二区三区在线| 好吊色欧美一区二区三区| 97精品伊人久久久大香线蕉| 国产在线一区二区三区播放| 国产亚洲精品自在久久| 九九热精品视频在线播放| 亚洲a区在线视频| 热久久免费国产视频| 久久久久久久少妇| 国产成人免费av| 欧美一区二区三区在线免费观看| 国产区日韩欧美| 国产精品久久婷婷六月丁香| 久久精品国产91精品亚洲 | 久久av免费一区| 国产欧美日韩高清| 久久免费观看视频| 91久久久久久久久| 免费一级特黄毛片| 中文字幕欧美日韩一区二区三区| 欧美日韩一区二区在线免费观看 | 亚洲国产欧美一区二区三区不卡| 国产精品成人一区二区| 久久人人爽国产|