Maison > Article > interface Web > nodejs implémente la sélection du dossier
Node.js est un langage de programmation JavaScript back-end populaire largement utilisé pour créer des applications Web, des API, des outils de ligne de commande, etc. Dans Node.js, vous devez parfois laisser les utilisateurs sélectionner des dossiers à lire, écrire et modifier dans le programme. Cet article explique comment utiliser Node.js pour sélectionner un dossier.
1. Utilisez Node.js natif pour sélectionner les dossiers
Node.js fournit le module fs pour faire fonctionner le système de fichiers. Dans le module fs, il existe une méthode appelée readdir, qui peut lire tous les fichiers et sous-répertoires d'un répertoire. Voici un exemple de code qui utilise Node.js natif pour sélectionner un dossier :
const fs = require('fs'); const path = require('path'); let dir = process.argv[2] || '.'; fs.readdir(dir, (err, files) => { if (err) throw err; console.log('请选择一个文件夹:'); files.forEach(file => { let filePath = path.join(dir, file); fs.stat(filePath, (err, stats) => { if (err) throw err; if (stats.isDirectory()) { console.log(`[${file}]`); } else { console.log(file); } }); }); process.stdin.resume(); process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { data = data.trim(); let filePath = path.join(dir, data); fs.stat(filePath, (err, stats) => { if (err) throw err; if (stats.isDirectory()) { process.stdin.pause(); console.log(`已选择[${data}]文件夹!`); } else { console.log(`${data}不是一个有效的文件夹!`); } }); }); });
Le code utilise d'abord la méthode fs.readdir pour lire le dossier spécifié par l'utilisateur, puis utilise la méthode fs.stat pour déterminer si chaque fichier est un dossier. Enfin, process.stdin est utilisé pour obtenir l'entrée de l'utilisateur. Si l'entrée de l'utilisateur est un dossier, cela signifie que l'utilisateur a sélectionné le dossier.
2. Utilisez des modules tiers pour sélectionner des dossiers
En plus d'utiliser Node.js natif, vous pouvez également utiliser des modules tiers pour sélectionner des dossiers. Voici deux modules tiers courants pour sélectionner des dossiers.
inquirer est une puissante bibliothèque d'interface utilisateur de ligne de commande interactive qui peut créer des sélections interactives sur la ligne de commande, tout comme le développement de formulaires Web. Voici un exemple de code qui utilise le demandeur pour sélectionner un dossier :
const inquirer = require('inquirer'); const fs = require('fs'); const path = require('path'); let dirs = fs .readdirSync('.') .filter(file => { return fs.statSync(file).isDirectory(); }) .map(dir => { return { name: `[${dir}]`, value: dir }; }); inquirer .prompt([ { type: 'list', name: 'dir', message: '请选择一个文件夹:', choices: dirs, }, ]) .then(answer => { console.log(`已选择[${answer.dir}]文件夹!`); });
Le code utilise la méthode fs.readdirSync pour lire tous les dossiers du répertoire actuel et utilise la méthode filter pour filtrer tous les dossiers. Ensuite, chaque dossier est encapsulé dans un objet via la méthode map, afin que le nom du dossier puisse être affiché dans la liste de sélection du demandeur. Enfin, utilisez la méthode Inquirer.prompt pour afficher une liste de sélection afin de permettre à l'utilisateur de sélectionner un dossier, et utilisez Answer.dir pour obtenir le nom du dossier sélectionné par l'utilisateur.
file-tree-select est un plugin de sélection de fichiers construit sur le demandeur et le nœud-file-tree. Il peut afficher l'arborescence des fichiers dans le répertoire actuel sur la ligne de commande et les utilisateurs peuvent sélectionner des dossiers via les flèches haut et bas et la barre d'espace du clavier. Voici un exemple de code qui utilise file-tree-select pour sélectionner un dossier :
const fileTreeSelect = require('file-tree-select'); const path = require('path'); let dir = process.argv[2] || '.'; let absDir = path.resolve(dir); fileTreeSelect(absDir, { hideFiles: true }).then(result => { console.log(`已选择[${result}]文件夹!`); });
Le code utilise d'abord la méthode path.resolve pour résoudre le nom de dossier saisi par l'utilisateur en un chemin absolu. Utilisez ensuite la méthode fileTreeSelect pour afficher l'arborescence des fichiers dans le répertoire actuel, et l'utilisateur peut utiliser les opérations du clavier pour sélectionner le dossier. Enfin, utilisez la méthode .then pour obtenir le chemin du dossier sélectionné par l'utilisateur.
3.Résumé
La sélection d'un dossier est une opération courante dans Node.js. Cet article présente trois façons de sélectionner des dossiers à l'aide de Node.js natif, de l'enquêteur et de la sélection d'arborescence de fichiers. Pour les petits projets, l'utilisation de Node.js natif peut répondre aux besoins ; pour les grands projets, l'utilisation de modules tiers peut améliorer l'efficacité du développement et la qualité du code.
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!