Comment détecter le chemin fourni comme un fichier ou un répertoire dans Node.js ?

Comment Detecter Le Chemin Fourni Comme Un Fichier Ou Un Repertoire Dans Node Js



La détection de l'entité du fichier est importante surtout lorsque vos applications gèrent la gestion d'un fichier ou stockent les données utilisateur dans des répertoires spécifiques. Étant donné qu'un répertoire unique peut contenir plusieurs fichiers, l'opération qui peut lui être appliquée implique le déplacement des fichiers vers un autre répertoire ou la suppression de tous les fichiers résidants.

Il en va de même avec un fichier, ses opérations peuvent inclure la modification du fichier, l'insertion de données dans le fichier ou la suppression d'un fichier. L'ensemble de l'application sera gâché si le développeur applique des opérations sur les fichiers sur les répertoires ou vice versa.

Cet article illustrera les approches permettant de détecter si le chemin fourni est un fichier ou un répertoire en couvrant ces méthodes :







Comment détecter le chemin fourni comme un fichier ou un répertoire dans Node.js ?

Il existe deux méthodes proposées par le « fs « module à savoir » estRépertoire() ' et ' estFichier() » qui a pour seul but de vérifier si le chemin fourni mène à un fichier ou un répertoire. Ces méthodes sont utilisées dans des scénarios synchrones et asynchrones en utilisant le «  statSync() ' et ' statistique() » méthodes. Ces deux méthodes sont illustrées ci-dessous pour détecter si le chemin fourni mène à un fichier ou un répertoire.



Méthode 1 : la méthode « statSync() » pour détecter le chemin menant au répertoire ou au fichier

Le ' statSync() » méthode fournie par le ' fs module ' est essentiellement utilisé pour effectuer des opérations synchrones. Cette méthode dans notre cas, stocke l'instance du chemin fourni une seule fois. Ensuite, il attribue le « estRépertoire() ' et ' estFichier() ' pour indiquer si le chemin spécifié mène à un répertoire ou un fichier.



Visitons l'extrait de code ci-dessous pour l'implémentation pratique de la méthode « statSync() » :





const fsObj = exiger ( 'fs' ) ;

laissez cheminFichier = fsObj. statistiqueSync ( '/Utilisateurs/kahou/Documents/readlineProj/mcu.db' ) ;

console. enregistrer ( 'Le chemin fourni mène-t-il à un fichier ? ' + cheminFichier. estFichier ( ) ) ;

cheminDir = fsObj. statistiqueSync ( '/Utilisateurs/kahou/Documents/readlineProj' ) ;

console. enregistrer ( 'Le chemin fourni mène-t-il à un répertoire ? ' + cheminDir. estRépertoire ( ) ) ;

L'explication du code fourni ci-dessus est indiquée ci-dessous :

  • Tout d’abord, importez le « fs ' module et stockez son instance dans un ' fsObj » variable.
  • Ensuite, invoquez le « statSync() ' méthode utilisant le ' fsObj ' et passez le chemin sélectionné entre ses parenthèses. Stockez la référence de ce chemin à l’intérieur du «  cheminFichier » variable.
  • Ensuite, attribuez le « estFichier() ' méthode avec le ' cheminFichier » pour renvoyer une valeur booléenne qui indiquera si le chemin fourni mène ou non à un fichier.
  • Après cela, invoquez à nouveau le « statSync() » et passez le nouveau chemin.
  • Enfin, joignez le « estRépertoire() ' avec la valeur renvoyée par la méthode ' démarrerSync() ' méthode.

Maintenant, exécutez le fichier actuel à l'aide de la commande ci-dessous :



'nœud '

Par exemple, nous avons exécuté le fichier « app.js » :

La sortie affiche la valeur de « vrai ' est renvoyé signifie que les chemins fournis concernent le dossier et que le fichier a été détecté.

Méthode 2 : la méthode « stat() » pour détecter le chemin menant au répertoire ou au fichier

Une autre méthode qui fonctionne parfaitement pour l’environnement asynchrone est connue sous le nom de « statistique() ' méthode qui est fournie par le ' fs module '. Il utilise également le même ' estFichier() ' et ' estRépertoire() ', mais en raison de sa nature asynchrone, le chemin unique peut être transmis aux deux méthodes. Il a deux paramètres, le premier stocke le chemin et le second est une fonction de rappel qui effectue certaines opérations sur le chemin fourni :

const fsObj = exiger ( 'fs' ) ,
chemin de test = '/Utilisateurs/kahou/Documents/readlineProj'

// Utiliser la méthode stat()
fsObj. statistique ( chemin de test , ( erreur , statObj ) => {
si ( ! erreur ) {
si ( statObj. estFichier ( ) ) {
console. enregistrer ( ' \n Oui! Le chemin fourni mène à un fichier ? ' ) ;
}
autre si ( statObj. estRépertoire ( ) ) {
console. enregistrer ( ' \n Oui! Le chemin fourni mène à un répertoire ? ' ) ;
}
}
autre
lancer erreur ;
} ) ;

L'explication du code fourni ci-dessus est présentée ci-dessous :

  • Tout d’abord, importez le « fs ' module et stockez son instance dans un ' fsObj » variable. Créer un ' chemin de test ' Variable qui stocke le chemin fourni par le testeur.
  • Maintenant, invoquez le « statistique() » et passez la méthode « chemin de test ' comme premier paramètre et une fonction de rappel comme deuxième paramètre.
  • La fonction de rappel contient « erreur ' comme premier paramètre et ' statObj » comme le deuxième. Le ' erreur ' contient des erreurs qui surviennent lors de l'exécution et ' startObj ' a le chemin fourni.
  • Dans la fonction, utilisez le «  si ' instruction qui s'exécute si aucune erreur n'est trouvée.
  • Le ' imbriqué si Les instructions ' sont utilisées pour attribuer le ' estFichier() ' et ' estRépertoire() ' méthodes avec ' statObj ».
  • Si les méthodes renvoient « vrai ' Ce n'est qu'alors que cette section est exécutée et affiche les messages de réussite en conséquence.

Après avoir exécuté le script ci-dessus, le terminal apparaît comme ceci :

Comme vous pouvez le voir, le chemin fourni est maintenant détecté et confirme que le chemin fourni mène à un répertoire.

Conclusion

Pour détecter si le chemin fourni est le chemin d’un répertoire ou d’un fichier dans NodeJs, les méthodes de « estFichier() ' et ' estRépertoire ' sont utilisés. Les chemins accessibles par ces méthodes sont fournis par le « statSync() ' et ' statistique() ' méthodes du ' fs »Module NodeJs. Ces méthodes stockent les chemins fournis respectivement de manière synchrone et asynchrone. Ce blog a expliqué la procédure pour détecter si le chemin fourni mène à un fichier ou un répertoire dans NodeJS.