Maison > interface Web > js tutoriel > Comment créer et extraire des fichiers zip dans Node.js ? Présentation de la méthode

Comment créer et extraire des fichiers zip dans Node.js ? Présentation de la méthode

青灯夜游
Libérer: 2020-11-26 17:54:30
avant
5024 Les gens l'ont consulté

Comment créer et extraire des fichiers zip dans Node.js ? Présentation de la méthode

Recommandations associées : "Tutoriel nodejs"

Le fichier Zip est un format de fichier compressé couramment utilisé. La plupart des développeurs finissent par utiliser des archives tar au lieu de fichiers zip. Mais il existe des situations dans lesquelles vous devez utiliser des fichiers zip, comme le téléchargement de fonctions vers AWS Lambda. Dans cet article, je vais montrer comment créer et extraire des fichiers zip avec le module adm-zip npm .

Créez un fichier Zip

Exportez une AdmZip classe depuis le module adm-zip npm. Une instance de AdmZip correspond à un fichier zip . Si vous souhaitez créer un nouveau fichier zip, vous devez appeler new AdmZip() sans aucun argument :

const AdmZip = require('adm-zip');

const file = new AdmZip();
Copier après la connexion

Les fichiers et répertoires peuvent être ajoutés à file de différentes manières. Les fichiers et répertoires peuvent être ajoutés à partir du système de fichiers par nom de fichier en utilisant file.addLocalFile() et file.addLocalFolder(). Par exemple, le code suivant montre comment ajouter un fichier package.json et un répertoire node_modules à un fichier 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');
Copier après la connexion

Vous pouvez ensuite écrire dans le fichier en utilisant l'une des deux méthodes suivantes :

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

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

// 另一种写入 zip 文件的方法:writeZip()
file.writeZip('output.zip');
Copier après la connexion

Après avoir écrit le fichier output.zip, vous devriez pouvoir l'ouvrir dans votre programme de décompression zip personnalisé. Vous trouverez ci-dessous le fichier ouvert dans le gestionnaire d'archives par défaut de Xubuntu engrampa. Le deuxième argument de

Comment créer et extraire des fichiers zip dans Node.js ? Présentation de la méthode

addLocalFile() et addLocalFolder() est le chemin pour placer le contenu du fichier ou du répertoire dans le zip. Par exemple, si vous souhaitez placer à la fois package.json et node_modules sous le répertoire project, vous pouvez exécuter le script suivant :

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());
Copier après la connexion

Les fichiers peuvent être ajoutés à partir du tampon Node.js d'origine à l'aide du file.addFile() méthode. Voici comment ajouter un fichier texte contenant la chaîne Hello,World à un fichier zip sans créer le fichier sur le système de fichiers.

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());
Copier après la connexion

Utiliser le fichier existant

Si vous transmettez des arguments au constructeur AdmZip, adm-zip analysera le fichier au chemin indiqué. Voici comment tout extraire d'un fichier output.zip dans un répertoire output.

const AdmZip = require('adm-zip');

const file = new AdmZip('./output.zip');

file.extractAllTo('./output');
Copier après la connexion

Vous pouvez également utiliser file.extractEntryTo() pour extraire des fichiers individuels à partir de fichiers zip. Par exemple, voici comment extraire un fichier hello.txt d'un fichier zip et l'écrire dans le répertoire actuel :

const AdmZip = require('adm-zip');

const file = new AdmZip('./output.zip');

file.extractEntryTo('hello.txt', './');
Copier après la connexion

Vous pouvez également utiliser addLocalFile(), addLocalFolder() et addFile() avec des fichiers existants.

Résumé

Les fichiers Zip sont souvent utilisés pour la compression. Certains services, tels qu'AWS Lambda, nécessitent que vous utilisiez des fichiers zip. Heureusement, le module adm-zip npm facilite la création et l'extraction de fichiers zip directement depuis Node.js.

Adresse originale en anglais : http://thecodebarbarian.com/working-with-zip-files-in-node-js.html

Auteur : Valeri Karpov

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéo de programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal