検索
ホームページウェブフロントエンドjsチュートリアルNode での zip 圧縮と zip 解凍の簡単な分析 (コード付き)

前の記事「Amazon EC2 ホスト https を有効にするための certbot について知っておくべきこと (コード共有)」では、Amazon EC2 ホスト https を有効にするための certbot について学びました。次の記事では、Node での zip 圧縮と zip 解凍について紹介しますので、その方法を見てみましょう。

Node での zip 圧縮と zip 解凍の簡単な分析 (コード付き)

NodeJSファイル (フォルダー) 圧縮/解凍スキーム (zip/unzip)-Linuxon zip 関連コマンド

adm-zip を使用します

adm-zip は、archive および unarchive の 1 つ以上をサポートします。ファイルまたはフォルダー全体の機能は非常にシンプルで使いやすいです。

var adm_zip = require("adm-zip");

//creating archives
var zip = new adm_zip();
zip.addLocalFolder("./dist");
zip.writeZip("./dist.zip");

//extracting archives
var unzip = new adm_zip("dist.zip");
unzip.extractAllTo("./dist", /*overwrite*/ true);

その他の APIhttps://github.com/ctackers/adm-zip

JSZip を使用する

ファイルを使用する場合は、このライブラリを使用する必要があります

zip オブジェクトに 1 つずつ追加され、コンテンツを手動で追加する必要があります。その後、ファイル書き込み操作を使用してメモリ内の zip オブジェクトを物理ストレージに変換します。 。ですので、フォルダ全体の場合は非常に面倒なので、フォルダを横断する必要があります

var JSZip = require("jszip");
var fs = require("fs");

var zip = new JSZip();

var file_content = fs.readFileSync("archive/a.txt");

zip.file("a.txt", file_content);

var data = fs.readFileSync("archive/img/pic.jpeg");
zip.file("img/pic.jpeg", data, { base64: true });

var zipfolder = zip.generate({ type: "nodebuffer" });

fs.writeFile("jszip.zip", zipfolder, function (err) {
  if (err) throw err;
});

JSZipfolder という方法もありますが、使用のみ zip オブジェクト内の仮想パスを切り替えます。たとえば、zip.folder("img").file('a.txt') に 1 つ追加します。 zip img サブディレクトリに a.txt を作成します。その効果は zip.file("img/a.txt") と同等です。ファイルの内容を手動で追加する必要があることにも注意してください。単に zip.file("a.txt"); の場合、コンテンツは zip 内に作成されるだけです。 オブジェクト。空の txt ファイル。メモリ内にのみ存在し、実際にディスクに保存する前にファイルに書き込む必要があります。

その他の APIhttps://github.com/Stuk/jszip

アーカイバを使用して解凍します

アーカイバ非常に強力です。 zip形式tar形式をサポートしている場合、既存のフォルダーを圧縮するためのパスを指定するだけで済みます。

圧縮:

// require modules
var fs = require("fs");
var archiver = require("archiver");

// create a file to stream archive data to.
var output = fs.createWriteStream(__dirname + "/example.zip");
var archive = archiver("zip", {
  zlib: { level: 9 }, // Sets the compression level.
});

// pipe archive data to the file
archive.pipe(output);

// append a file from stream
var file1 = __dirname + "/file1.txt";
archive.append(fs.createReadStream(file1), { name: "file1.txt" });

// append a file from string
archive.append("string cheese!", { name: "file2.txt" });

// append a file from buffer
var buffer3 = Buffer.from("buff it!");
archive.append(buffer3, { name: "file3.txt" });

// append a file
archive.file("file1.txt", { name: "file4.txt" });

// append files from a sub-directory and naming it `new-subdir` within the archive
archive.directory("subdir/", "new-subdir");

// append files from a sub-directory, putting its contents at the root of archive
archive.directory("subdir/", false);

// append files from a glob pattern
archive.glob("subdir/*.txt");

// finalize the archive (ie we are done appending files but streams have to finish yet)
// 'close', 'end' or 'finish' may be fired right after calling this method so register to them beforehand
archive.finalize();

解凍

var fs = require("fs");
var unzip = require("unzip");

fs.createReadStream("archiver-unzip.zip").pipe(
  unzip.Extract({ path: "unarchive" })
);

その他の APIhttps://github.com/archiverjs/node-archiver

zip Linux の /unzip コマンド

apt-get install zip unzip

Unzip

zipFile

構文: unzip [-cflptuvz][-agcjlmnoqsvx][-P ;][ .zip ファイル][ファイル][-d ][-x ] または解凍 [-Z]

追加手順:

.zip の解凍解凍ツール 圧縮ファイル。

パラメータ:

-c解凍結果を画面に表示し、文字を適切に変換します。

-f既存のファイルを更新します。

-l圧縮ファイルに含まれるファイルを表示します。

-p-c パラメータに似ており、解凍結果を画面に表示しますが、変換は実行しません。

-t圧縮ファイルが正しいか確認してください。

-u-f パラメータに似ていますが、既存のファイルを更新するだけでなく、圧縮ファイル内の他のファイルもディレクトリに解凍されます。

-v実行時に詳細情報を表示します。

-z圧縮ファイルのコメントテキストのみを表示します。

-a必要な文字をテキストファイルに変換します。

-bテキスト ファイルに対して文字変換を実行しないでください。

-C圧縮ファイル内のファイル名は大文字と小文字が区別されます。

-j圧縮ファイル内の元のディレクトリ パスを処理しません。

-L圧縮ファイル内のすべてのファイル名を小文字に変更します。

-M 出力結果を more プログラムに送信して処理します。

-n解凍時に元のファイルを上書きしないでください。

-o最初にユーザーに確認する必要はありません。unzip は実行後に元のファイルを上書きします。

-P zip のパスワード オプションを使用します。

#-q

実行中に情報は表示されません。

-s

ファイル名の空白文字をアンダースコア文字に変換します。

-V

VMS のファイル バージョン情報を保持します。

-X

解凍すると、ファイルの元の UID/GID も同時に保存されます。

[.zip ファイル]

.zip 圧縮ファイルを指定します。

[ファイル]

.zip 圧縮ファイル内のどのファイルを処理するかを指定します。

-d

解凍後にファイルを保存するディレクトリを指定します。

-x

.zip 圧縮ファイル内のどのファイルを処理しないかを指定します。

-Z unzip-Z

は、zipinfo コマンドの実行と同じです。

基本的な使用法は次のとおりです: zip [パラメータ][パッケージ化されたファイル名] [パッケージ化されたディレクトリのパス]

パラメータ:

-a

ファイルを ASCII モードに変換します

-F

破損した圧縮ファイルを修復してみます##-h

ヘルプ インターフェイスを表示します

-m

ファイル圧縮後、ソースファイルを削除してください

-n特定字符串 不压缩具有特定字尾字符串的文件

-o将压缩文件内的所有文件的最新变动时间设为压缩时候的时间

-q安静模式,在压缩的时候不显示指令的执行过程

-r将指定的目录下的所有子目录以及文件一起处理

-S包含系统文件和隐含文件(S 是大写)

范 例:

zip命令可以用来将文件压缩成为常用的zip格式。unzip命令则用来解压缩zip文件。 压缩文件abc.txt和一个目录dir1,名字test.zip

zip -r test.zip abc.txt dir1
#解压缩:
```sh
unzip test.zip

目录下有abc1.zipabc2.zipabc3.zip,使用通配符

unzip abc\?.zip

注释:?表示一个字符,如果用*表示任意多个字符。 不解压,只查看内容

unzip -v test.zip

验证zip文件完成性,查看网上下的包包是不是已经下载完了

unzip -t test.zip

我用-v选项发现music.zip压缩文件里面有很多目录和子目录,并且子目录中其实都是歌曲mp3文件,我想把这些文件都下载到第一级目录,而不是一层一层建目录:

unzip -j music.zip

推荐学习:JS视频教程

以上がNode での zip 圧縮と zip 解凍の簡単な分析 (コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は禅境花园で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
PythonとJavaScriptの未来:傾向と予測PythonとJavaScriptの未来:傾向と予測Apr 27, 2025 am 12:21 AM

PythonとJavaScriptの将来の傾向には、1。Pythonが科学コンピューティングの分野での位置を統合し、AI、2。JavaScriptはWebテクノロジーの開発を促進します。どちらもそれぞれのフィールドでアプリケーションシナリオを拡大し続け、パフォーマンスをより多くのブレークスルーを行います。

Python vs. JavaScript:開発環境とツールPython vs. JavaScript:開発環境とツールApr 26, 2025 am 12:09 AM

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

JavaScriptはCで書かれていますか?証拠を調べるJavaScriptはCで書かれていますか?証拠を調べるApr 25, 2025 am 12:15 AM

はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。

JavaScriptの役割:WebをインタラクティブでダイナミックにするJavaScriptの役割:WebをインタラクティブでダイナミックにするApr 24, 2025 am 12:12 AM

JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。

CおよびJavaScript:接続が説明しましたCおよびJavaScript:接続が説明しましたApr 23, 2025 am 12:07 AM

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

Webサイトからアプリまで:JavaScriptの多様なアプリケーションWebサイトからアプリまで:JavaScriptの多様なアプリケーションApr 22, 2025 am 12:02 AM

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Python vs. JavaScript:ユースケースとアプリケーションと比較されますPython vs. JavaScript:ユースケースとアプリケーションと比較されますApr 21, 2025 am 12:01 AM

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

JavaScript通訳者とコンパイラにおけるC/Cの役割JavaScript通訳者とコンパイラにおけるC/Cの役割Apr 20, 2025 am 12:01 AM

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、