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');
//写入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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









ノンブロッキングおよびイベント駆動に基づいて構築されたノード サービスには、メモリ消費量が少ないという利点があり、大量のネットワーク リクエストの処理に非常に適しています。大量のリクエストを前提として、「メモリ制御」に関する問題を考慮する必要があります。 1. V8 のガベージ コレクション メカニズムとメモリ制限 Js はガベージ コレクション マシンによって制御されます

この記事では、NodeJS V8 エンジンのメモリとガベージ コレクター (GC) について詳しく説明します。

ノード用の Docker イメージの選択は些細なことのように思えるかもしれませんが、イメージのサイズと潜在的な脆弱性は、CI/CD プロセスとセキュリティに大きな影響を与える可能性があります。では、最適な Node.js Docker イメージを選択するにはどうすればよいでしょうか?

ファイル モジュールは、ファイルの読み取り/書き込み/開く/閉じる/削除の追加など、基礎となるファイル操作をカプセル化したものです。ファイル モジュールの最大の特徴は、すべてのメソッドが **同期** と ** の 2 つのバージョンを提供することです。 asynchronous**、sync サフィックスが付いているメソッドはすべて同期メソッドであり、持たないメソッドはすべて異種メソッドです。

Node 19 が正式リリースされましたので、この記事では Node.js 19 の 6 つの主要な機能について詳しく説明します。

Node.js はどのように GC (ガベージ コレクション) を行うのでしょうか?次の記事で詳しく説明します。

イベント ループは Node.js の基本的な部分であり、メイン スレッドがブロックされていないことを確認することで非同期プログラミングが可能になります。イベント ループを理解することは、効率的なアプリケーションを構築するために重要です。次の記事では、Node のイベント ループについて詳しく説明します。お役に立てれば幸いです。

ノードが npm コマンドを使用できない理由は、環境変数が正しく設定されていないためです。解決策は次のとおりです: 1. 「システムのプロパティ」を開きます; 2. 「環境変数」->「システム変数」を見つけて、環境を編集します。変数; 3.nodejs フォルダーの場所を見つけます; 4.「OK」をクリックします。
