中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

nodejs中archiver如何用

發布時間:2022-06-30 09:17:06 來源:億速云 閱讀:214 作者:iii 欄目:web開發

本篇內容介紹了“nodejs中archiver如何用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

在nodejs中,archiver用于將一些文件壓縮打包成zip格式或tar格式的壓縮包;archiver是一個能跨平臺實現打包功能的模塊,打包的格式是zip和tar,可以利用“npm install archiver”語句在使用前安裝該模塊。

本文操作環境:Windows10系統、nodejs 12.19.0版、Dell G3電腦。

nodejs中archiver使用方法

有時候我們需要將一些文件壓縮打包成zip格式或tar格式的壓縮包,也有可能需要將目錄進行打包。在Node.js中就可以用到archiver這個第三方包來進行操作。

archiver是一個在nodejs中能跨平臺實現打包功能的模塊,可以打zip和tar包,是一個比較好用的三方模塊。

使用前先安裝archiver模塊。

代碼如下:

npm install archiver

引入:

// 由于需要讀取文件所以需要fs模塊,也必須導入
const fs = require('fs');
const archiver = require('archiver');

使用

基本使用如下:

// 第一步,導入必要的模塊
const fs = require('fs');
const archiver = require('archiver');

// 第二步,創建可寫流來寫入數據
const output = fs.createWriteStream(__dirname + "/hello.zip");// 將壓縮包保存到當前項目的目錄下,并且壓縮包名為test.zip
const archive = archiver('zip', {zlib: {level: 9}});// 設置壓縮等級

// 第三步,建立管道連接
archive.pipe(output);

// 第四步,壓縮指定文件
var stream = fs.createReadStream(__dirname + "/hello.txt");// 讀取當前目錄下的hello.txt
archive.append(stream, {name: 'hello.txt'});

// 第五步,完成壓縮
archive.finalize();

執行代碼成功后,就會在項目的所在目錄下生成一個名為hello.zip壓縮包,該壓縮包內就是壓縮的文件hello.txt。
nodejs中archiver如何用

實例

壓縮單個文件

壓縮文件可以使用archive.append()archive.file()來進行操作。

壓縮單個文件的API如下:

// 添加一個文件到壓縮包,通過可寫流的方式讀取數據附加文件
const file1 = __dirname + '/file1.txt';
archive.append(fs.createReadStream(file1), { name: 'file1.txt' });

//添加一個文件到壓縮包,通過將字符串寫入到文件的方式附加文件
archive.append('string cheese!', { name: 'file2.txt' });

// 添加一個文件到壓縮包,通過Buffer數據的方式附加文件
const buffer3 = Buffer.from('buff it!');
archive.append(buffer3, { name: 'file3.txt' });

// 添加一個文件到壓縮包,直接傳入文件路徑
archive.file('file1.txt', { name: 'file4.txt' });

完整的例子如下:

// 第一步,導入必要的模塊
const fs = require('fs');
const archiver = require('archiver');

// 第二步,創建可寫流來寫入數據
const output = fs.createWriteStream(__dirname + "/hello.zip");// 將壓縮包保存到當前項目的目錄下,并且壓縮包名為test.zip
const archive = archiver('zip', {zlib: {level: 9}});// 設置壓縮等級

// 第三步,建立管道連接
archive.pipe(output);

// 第四步,壓縮指定文件
archive.append(fs.createReadStream(__dirname + '/hello.txt'), {name: 'hello.txt'});// 文件流
archive.append('index.html', {name: 'index.html'});// 文件路徑
archive.append(Buffer.from("這是Buffer格式的數據"), {name: 'buffer.txt'});// Buffer對象
archive.append("直接傳入字符串", {name: 'string.txt'});// 字符串

// 第五步,完成壓縮
archive.finalize();

nodejs中archiver如何用
注意:archive.append()第二個參數{name: 'hello.txt'}是對壓縮包中對應的文件進行重命名。

壓縮多個文件

如果要壓縮多個文件,直接調用archive.append()方法附加文件即可,這些附加的文件都會被添加到壓縮包中。如例:

// 第一步,導入必要的模塊
const fs = require('fs');
const archiver = require('archiver');

// 第二步,創建可寫流來寫入數據
const output = fs.createWriteStream(__dirname + "/hello.zip");// 將壓縮包保存到當前項目的目錄下,并且壓縮包名為test.zip
const archive = archiver('zip', {zlib: {level: 9}});// 設置壓縮等級

// 第三步,建立管道連接
archive.pipe(output);

// 第四步,壓縮多個文件到壓縮包中
archive.append('index.html', {name: 'index.html'});
archive.append('hello.js', {name: 'hello.js'});
archive.append('hello.html', {name: 'hello.html'});
archive.append('db.json', {name: 'db.json'});

// 第五步,完成壓縮
archive.finalize();

nodejs中archiver如何用

壓縮目錄

如果要壓縮目錄,則需要使用archive.directory()來完成。API如下:

// 將指定目錄打包壓縮到壓縮包中,并且重命名為new-subdir,并且subdir目錄下的所有文件仍然在new-subdir目錄下,而不是在壓縮包的根目錄下
archive.directory('subdir/', 'new-subdir');

// 將指定目錄下的所有文件打包壓縮到壓縮包中,而這些文件在壓縮包的根目錄,而非子目錄中
archive.directory('subdir/', false);

完整實例如下:

// 第一步,導入必要的模塊
const fs = require('fs');
const archiver = require('archiver');

// 第二步,創建可寫流來寫入數據
const output = fs.createWriteStream(__dirname + "/hello.zip");// 將壓縮包保存到當前項目的目錄下,并且壓縮包名為test.zip
const archive = archiver('zip', {zlib: {level: 9}});// 設置壓縮等級

// 第三步,建立管道連接
archive.pipe(output);

// 第四步,壓縮目錄到壓縮包中
archive.directory('public/', 'new-public');
archive.directory('demo/', false);

// 第五步,完成壓縮
archive.finalize();

nodejs中archiver如何用

“nodejs中archiver如何用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东方市| 阳新县| 佛冈县| 巴林右旗| 邵东县| 临邑县| 龙井市| 太仓市| 维西| 平昌县| 合肥市| 昭苏县| 叙永县| 新河县| 宁津县| 循化| 黄冈市| 太原市| 松滋市| 凤翔县| 富蕴县| 内丘县| 句容市| 章丘市| 宜宾市| 盐津县| 中宁县| 腾冲县| 兴国县| 尚志市| 河北省| 鄯善县| 玉林市| 泗洪县| 武川县| 班戈县| 巴中市| 普陀区| 萨嘎县| 张家港市| 天水市|