Com detectar que el camí proporcionat és un fitxer o directori a Node.js?

Com Detectar Que El Cami Proporcionat Es Un Fitxer O Directori A Node Js



La detecció de l'entitat del fitxer és important, especialment quan les vostres aplicacions s'ocupen de la gestió d'un fitxer o emmagatzemen dades d'usuari en directoris específics. Com que un sol directori pot contenir diversos fitxers, l'operació que s'hi pot aplicar implica el moviment de fitxers a un altre directori o la supressió de tots els fitxers residents.

El mateix passa amb un fitxer, les seves operacions poden incloure la modificació del fitxer, la inserció de dades al fitxer o l'eliminació d'un sol. Tota l'aplicació es veurà desordenada si el desenvolupador aplica operacions de fitxers sobre directoris o viceversa.

Aquest article il·lustrarà els enfocaments per detectar si la ruta proporcionada és un fitxer o un directori abastant aquests mètodes:







Com detectar que el camí proporcionat és un fitxer o directori a Node.js?

Hi ha dos mètodes que ofereix el ' fs ' mòdul és a dir ' isDirectory() ' i ' isFile() ” que té l'únic propòsit de comprovar si la ruta proporcionada condueix a un fitxer o directori. Aquests mètodes s'utilitzen tant en escenaris síncrons com asíncrons mitjançant el ' statSync() ' i ' estat() ” mètodes. A continuació es mostren aquests dos mètodes per detectar si la ruta proporcionada condueix a un fitxer o directori.



Mètode 1: el mètode 'statSync()' per detectar el camí que condueix al directori o fitxer

El ' statSync() ” mètode proporcionat pel “ fs ” mòdul s'utilitza bàsicament per realitzar operacions sincròniques. Aquest mètode, en el nostre cas, emmagatzema la instància de la ruta proporcionada només una vegada. Aleshores, assigna el ' isDirectory() ' i ' isFile() ” mètodes per tornar si la ruta especificada condueix a un directori o fitxer.



Visitem el fragment de codi següent per a la implementació pràctica del mètode 'statSync()':





const fsObj = requereixen ( 'fs' ) ;

deixar pathFile = fsObj. statSync ( '/Users/kahou/Documents/readlineProj/mcu.db' ) ;

consola. registre ( 'S'ofereixen les pistes de ruta a un fitxer? ' + pathFile. isFile ( ) ) ;

pathDir = fsObj. statSync ( '/Users/kahou/Documents/readlineProj' ) ;

consola. registre ( 'S'ofereixen els cables de ruta a un directori? ' + pathDir. isDirectory ( ) ) ;

A continuació s'explica l'explicació del codi proporcionat anteriorment:

  • Primer, importeu el ' fs ” i emmagatzemar la seva instància en un “ fsObj ” variable.
  • A continuació, invoqueu el ' statSync() ” mitjançant el mètode “ fsObj ” variable i passa el camí seleccionat dins del seu parèntesi. Emmagatzema la referència d'aquest camí dins del ' pathFile ” variable.
  • A continuació, assigneu el ' isFile() ' mètode amb el ' pathFile ” per retornar un valor booleà que mostrarà si la ruta proporcionada condueix a un fitxer o no.
  • Després d'això, torneu a invocar el ' statSync() ” mètode i passar el nou camí.
  • Finalment, adjunteu el ' isDirectory() ” mètode amb el valor retornat pel “ startSync() ” mètode.

Ara, executeu el fitxer actual amb l'ordre següent:



'node '

Per exemple, hem executat el fitxer 'app.js':

La sortida mostra el valor de ' veritat ” es retorna significa que els camins proporcionats són per a la carpeta i el fitxer s'ha detectat.

Mètode 2: el mètode 'stat()' per detectar el camí que condueix al directori o fitxer

Un altre mètode que funciona perfectament per a l'entorn asíncron es coneix com ' estat() ” mètode que proporciona el “ fs ” mòdul. També utilitza el mateix ' isFile() ' i ' isDirectory() ” però a causa de la seva naturalesa asíncrona, el camí únic es pot passar als dos mètodes. Té dos paràmetres, el primer camí d'emmagatzematge i el segon és una funció de devolució de trucada que realitza algunes operacions sobre el camí proporcionat:

const fsObj = requereixen ( 'fs' ) ,
TestPath = '/Users/kahou/Documents/readlineProj'

// Utilitzeu el mètode stat().
fsObj. estat ( TestPath , ( error , estatObj ) => {
si ( ! error ) {
si ( estatObj. isFile ( ) ) {
consola. registre ( ' \n Sí! El camí proporcionat condueix a un fitxer? ' ) ;
}
altra cosa si ( estatObj. isDirectory ( ) ) {
consola. registre ( ' \n Sí! El camí proporcionat condueix a un directori? ' ) ;
}
}
altra cosa
llançar error ;
} ) ;

L'explicació del codi proporcionat anteriorment es mostra a continuació:

  • Primer, importeu el ' fs ” i emmagatzemar la seva instància en un “ fsObj ” variable. Crea un ' TestPath ” variable que emmagatzema la ruta proporcionada pel provador.
  • Ara, invoqueu el ' estat() ” mètode i passar el “ TestPath ” com a primer paràmetre i una funció de devolució de trucada com a segon paràmetre.
  • La funció de devolució de trucada conté ' error ' com a primer paràmetre i ' estatObj ” com el segon. El ' error ” conté errors que sorgeixen durant l'execució i “startObj” té la ruta proporcionada.
  • Dins de la funció, utilitzeu el ' si ” declaració que s'executa si no es troba cap error.
  • El ' niu si ' s'utilitzen per assignar el ' isFile() ' i ' isDirectory() ' mètodes amb ' estatObj ”.
  • Si els mètodes tornen ' veritat ” només llavors aquesta secció s'executa i mostra els missatges d'èxit en conseqüència.

Després d'executar l'script anterior, el terminal apareix així:

Com podeu veure, ara es detecta la ruta proporcionada i confirma que la ruta proporcionada condueix a un directori.

Conclusió

Per detectar si la ruta proporcionada és la ruta d'un directori o fitxer a NodeJs, els mètodes de ' isFile() ' i ' isDirectory ” s'utilitzen. Els camins accessibles per aquests mètodes els proporcionen el ' statSync() ' i ' estat() ' mètodes de la ' fs ” Mòdul NodeJs. Aquests mètodes emmagatzemen els camins proporcionats de manera síncrona i asíncrona respectivament. Aquest bloc ha explicat el procediment per detectar si la ruta proporcionada condueix a un fitxer o directori a NodeJS.