Node.js vérifier si le chemin est fichier ou d'un répertoire
Je ne peux pas sembler obtenir des résultats de recherche qui expliquent comment faire.
Tout ce que je veux faire est d'être en mesure de savoir si un chemin est un fichier ou un répertoire (dossier).
Vous devez vous connecter pour publier un commentaire.
fs.lstatSync(path_string).isDirectory()
devrait vous dire. À partir de la docs:REMARQUE: La solution ci-dessus va
throw
unError
si; par ex, lefile
oudirectory
n'existe pas. Si vous voulez untruthy
oufalsy
essayerfs.existsSync(dirPath) && fs.lstatSync(dirPath).isDirectory();
comme mentionné par Joseph dans les commentaires ci-dessous.let isDirExists = fs.existsSync(dirPath) && fs.lstatSync(dirPath).isDirectory();
Mise à jour: Node.Js >= 10
Nous pouvons utiliser la nouvelle fs.promesses API
Tout Node.Js version
Voici comment détecter si le chemin d'un fichier ou d'un répertoire de manière asynchrone, qui est l'approche recommandée dans le nœud.
à l'aide de fs.lstat
Remarque lors de l'utilisation de l'API synchrones:
Sérieusement, la question existe cinq ans et pas belle façade?
En fonction de vos besoins, vous pouvez probablement s'appuyer sur le nœud du
path
module.Vous ne pouvez pas être en mesure de frapper le système de fichiers (par exemple, le fichier n'a pas encore été créé) et tbh vous voulez probablement pour éviter de heurter le système de fichiers, à moins que vous vraiment besoin de l'appoint de validation. Si vous pouvez faire l'hypothèse que ce que vous êtes en vérifiant suit
.<extname>
format, il suffit de regarder le nom.Évidemment, si vous êtes à la recherche pour un fichier sans extname vous aurez besoin de frapper le système de fichiers pour être sûr. Mais garder les choses simples jusqu'à ce que vous avez besoin de plus compliqué.
Les réponses ci-dessus vérifier si un système de fichiers contient un chemin d'accès d'un fichier ou d'un répertoire. Mais il n'a pas d'identifier si un chemin d'accès donné à lui seul est un fichier ou un répertoire.
Comme un chemin d'accès d'un répertoire ou d'un fichier qui n'a pas encore été écrite. Ou un chemin d'accès à partir d'un autre ordinateur. Ou un chemin d'accès où les deux d'un fichier et le répertoire du même nom existe déjà.
Nœud version: v11.10.0 - Février 2019
Voici une fonction autonome que j'utilise dans certains de mes programmes. Personne n'est à l'utilisation de
promisify
etawait/async
dans ce post, donc je pensais que je voudrais partager.Note : je n'utilise pas
require('fs').promises;
parce qu'il a été expérimental pour un an, maintenant, plutôt pas compter sur elle.