関連する推奨事項: 「nodejs チュートリアル 」
Zip ファイルは、一般的に使用される圧縮ファイル形式です。ほとんどの開発者は、最終的に zip ファイルの代わりに tarball を使用します。ただし、関数を AWS Lambda にアップロードするなど、zip ファイルを使用する必要がある状況もあります。この記事では、adm-zip npm モジュール を使用して zip ファイルを作成および解凍する方法を説明します。
adm-zip の npm モジュールから AdmZip
クラスをエクスポートします。 AdmZip
のインスタンスは zip ファイル に対応します。新しい zip ファイルを作成する場合は、パラメータを指定せずに new AdmZip()
を呼び出す必要があります。
const AdmZip = require('adm-zip'); const file = new AdmZip();
ファイルやディレクトリを file## に追加するには、さまざまな方法があります。 #。
file.addLocalFile() および
file.addLocalFolder() を使用して、ファイル名によってファイル システムからファイルとディレクトリを追加できます。たとえば、次のコードは、
package.json ファイルと
node_modules ディレクトリを zip ファイルに追加する方法を示しています。
const AdmZip = require('adm-zip'); const file = new AdmZip(); file.addLocalFile('./package.json'); //第二个node_modules 参数是 zip 中目录的路径。 //如果没有第二个参数,则`./node_modules`中的每个目录都将是压缩文件中的顶级目录 file.addLocalFolder('./node_modules', 'node_modules');
//写入zip文件的第一种方法:将其转换为缓冲区并使用`fs` const fs = require('fs'); fs.writeFileSync('output.zip', file.toBuffer()); // 另一种写入 zip 文件的方法:writeZip() file.writeZip('output.zip');
output.zip ファイルを書き込んだ後、カスタム zip 解凍プログラムで開くことができるはずです。以下は、Xubuntu のデフォルトのアーカイブマネージャー
engrampa で開かれたファイルです。
addLocalFile() および
addLocalFolder() 2 番目のパラメータは、ファイルまたはディレクトリの内容を zip に入れるパスです。 。たとえば、
package.json と
node_modules の両方を
project ディレクトリに配置する場合は、次のスクリプトを実行できます:
const AdmZip = require('adm-zip'); const file = new AdmZip(); file.addLocalFile('./package.json', 'project'); file.addLocalFolder('./node_modules', 'project/node_modules'); const fs = require('fs'); fs.writeFileSync('output.zip', file.toBuffer());
file.addFile() メソッドは元の Node.js バッファーからファイルを追加します。ファイル システム上にファイルを作成せずに、文字列
Hello, World を含むテキスト ファイルを zip ファイルに追加する方法を次に示します。
const AdmZip = require('adm-zip'); const file = new AdmZip(); file.addFile('hello.txt', Buffer.fromString('Hello, World')); const fs = require('fs'); fs.writeFileSync('output.zip', file.toBuffer());
AdmZip コンストラクターに渡すと、adm-zip は指定されたパスにあるファイルを解析します。
output.zip ファイルからすべてをディレクトリ
output に抽出する方法は次のとおりです。
const AdmZip = require('adm-zip'); const file = new AdmZip('./output.zip'); file.extractAllTo('./output');
file.extractEntryTo() を使用して、zip ファイルから単一のファイルを抽出することもできます。たとえば、zip ファイルから
hello.txt ファイルを取得して現在のディレクトリに書き込む方法は次のとおりです。
const AdmZip = require('adm-zip'); const file = new AdmZip('./output.zip'); file.extractEntryTo('hello.txt', './');
addLocalFile( ) を使用することもできます。 、
addLocalFolder() および
addFile()。
英語の元のアドレス: http://thecodebarbarian.com/working-with-zip-files-in-node-js.html著者: Valeri Karpovプログラミング関連の知識について詳しくは、
プログラミング ビデオをご覧ください。 !
以上がNode.js で zip ファイルを作成および抽出するにはどうすればよいですか?手法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。