ホームページ  >  記事  >  ウェブフロントエンド  >  Node.js で zip ファイルを作成および抽出するにはどうすればよいですか?手法の紹介

Node.js で zip ファイルを作成および抽出するにはどうすればよいですか?手法の紹介

青灯夜游
青灯夜游転載
2020-11-26 17:54:304846ブラウズ

Node.js で zip ファイルを作成および抽出するにはどうすればよいですか?手法の紹介

関連する推奨事項: 「nodejs チュートリアル

Zip ファイルは、一般的に使用される圧縮ファイル形式です。ほとんどの開発者は、最終的に zip ファイルの代わりに tarball を使用します。ただし、関数を AWS Lambda にアップロードするなど、zip ファイルを使用する必要がある状況もあります。この記事では、adm-zip npm モジュール を使用して zip ファイルを作成および解凍する方法を説明します。

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');

次に、次のコードを使用できます。 2 つの方法 ファイルの書き込み:

//写入zip文件的第一种方法:将其转换为缓冲区并使用`fs`
const fs = require('fs');

fs.writeFileSync('output.zip', file.toBuffer());

// 另一种写入 zip 文件的方法:writeZip()
file.writeZip('output.zip');

output.zip ファイルを書き込んだ後、カスタム zip 解凍プログラムで開くことができるはずです。以下は、Xubuntu のデフォルトのアーカイブマネージャー engrampa で開かれたファイルです。

Node.js で zip ファイルを作成および抽出するにはどうすればよいですか?手法の紹介

addLocalFile() および addLocalFolder() 2 番目のパラメータは、ファイルまたはディレクトリの内容を zip に入れるパスです。 。たとえば、package.jsonnode_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()

概要

zip ファイルは圧縮によく使用されます。 AWS Lambda などの一部のサービスでは、zip ファイルを使用する必要があります。幸いなことに、adm-zip npm モジュールを使用すると、Node.js から直接 zip ファイルを簡単に作成および抽出できます。

英語の元のアドレス: http://thecodebarbarian.com/working-with-zip-files-in-node-js.html

著者: Valeri Karpov

プログラミング関連の知識について詳しくは、

プログラミング ビデオをご覧ください。 !

以上がNode.js で zip ファイルを作成および抽出するにはどうすればよいですか?手法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。