¿Cómo detectar que la ruta proporcionada es un archivo o directorio en Node.js?

Como Detectar Que La Ruta Proporcionada Es Un Archivo O Directorio En Node Js



Detectar la entidad del archivo es importante, especialmente cuando sus aplicaciones se ocupan de la administración de un archivo o almacenan datos del usuario en directorios específicos. Debido a que los directorios individuales pueden contener varios archivos, la operación que se les puede aplicar implica el movimiento de archivos a otro directorio o la eliminación de todos los archivos residentes.

Lo mismo ocurre con un archivo, sus operaciones pueden incluir modificar el archivo, insertar datos en el archivo o eliminar uno solo. Toda la aplicación se arruinará si el desarrollador aplica operaciones de archivos sobre directorios o viceversa.

Este artículo ilustrará los enfoques para detectar si la ruta proporcionada es un archivo o un directorio cubriendo estos métodos:







¿Cómo detectar que la ruta proporcionada es un archivo o directorio en Node.js?

Hay dos métodos proporcionados por el “ fs 'Módulo a saber' esDirectorio() ' y ' esArchivo() ”que tiene el único propósito de comprobar si la ruta proporcionada conduce a un archivo o directorio. Estos métodos se utilizan tanto en escenarios sincrónicos como asincrónicos utilizando el método ' sincronización estadística() ' y ' estadística() ' métodos. Estos dos métodos se demuestran a continuación para detectar si la ruta proporcionada conduce a un archivo o directorio.



Método 1: El método “statSync()” para detectar la ruta que conduce al directorio o archivo

El ' sincronización estadística() 'Método proporcionado por el “ fs 'módulo Se utiliza básicamente para realizar operaciones sincrónicas. En nuestro caso, este método almacena la instancia de la ruta proporcionada solo una vez. Luego, asigna el “ esDirectorio() ' y ' esArchivo() 'Métodos para devolver si la ruta especificada conduce a un directorio o archivo.



Visitemos el siguiente fragmento de código para la implementación práctica del método 'statSync()':





constante fsObj = requerir ( 'fs' ) ;

dejar rutaArchivo = fsObj. sincronización estadística ( '/Users/kahou/Documents/readlineProj/mcu.db' ) ;
 
consola. registro ( '¿Se proporciona la ruta que conduce a un archivo? ' + rutaArchivo. es archivo ( ) ) ;

rutaDir = fsObj. sincronización estadística ( '/Usuarios/kahou/Documentos/readlineProj' ) ;

consola. registro ( '¿Se proporciona la ruta que conduce a un directorio? ' + rutaDir. esDirectorio ( ) ) ;

La explicación del código proporcionado anteriormente se indica a continuación:

  • Primero, importe el ' fs 'Módulo y almacenar su instancia en un' fsObj ' variable.
  • Luego, invoca el “ sincronización estadística() 'Método usando el' fsObj ”Variable y pase la ruta seleccionada dentro de su paréntesis. Guarde la referencia de esta ruta dentro del archivo “ rutaArchivo ' variable.
  • A continuación, asigne el ' esArchivo() 'Método con el' rutaArchivo ”para devolver un valor booleano que mostrará si la ruta proporcionada conduce a un archivo o no.
  • Después de eso, invoque nuevamente el “ sincronización estadística() ”Método y pase la nueva ruta.
  • Finalmente, adjunte el “ esDirectorio() 'Método con el valor devuelto por el' iniciar sincronización() ' método.

Ahora, ejecute el archivo actual usando el siguiente comando:



'nodo '

Por ejemplo, hemos ejecutado el archivo “app.js”:

La salida muestra el valor de ' verdadero 'Se devuelve significa que las rutas proporcionadas son para la carpeta y el archivo ha sido detectado.

Método 2: El método “stat()” para detectar la ruta que conduce al directorio o archivo

Otro método que funciona perfectamente para el entorno asíncrono se conoce como “ estadística() 'Método que es proporcionado por el' fs ”módulo. También utiliza el mismo “ esArchivo() ' y ' esDirectorio() ”métodos, pero debido a su naturaleza asincrónica, la ruta única se puede pasar a ambos métodos. Tiene dos parámetros, el primero almacena la ruta y el segundo es una función de devolución de llamada que realiza algunas operaciones en la ruta proporcionada:

constante fsObj = requerir ( 'fs' ) ,
ruta de prueba = '/Usuarios/kahou/Documentos/readlineProj'

// Usa el método stat()
fsObj. estadística ( ruta de prueba , ( error , statObj ) => {
  si ( ! error ) {
  si ( estadísticaObj. es archivo ( ) ) {
consola. registro ( ' \norte ¡Sí! ¿La ruta proporcionada conduce a un archivo? ' ) ;
  }
  demás si ( estadísticaObj. esDirectorio ( ) ) {
consola. registro ( ' \norte ¡Sí! ¿La ruta proporcionada conduce a un directorio? ' ) ;
  }
  }
  demás
  tirar error ;
} ) ;

La explicación del código proporcionado anteriormente se muestra a continuación:

  • Primero, importe el ' fs 'Módulo y almacenar su instancia en un' fsObj ' variable. Crear un ' ruta de prueba ”Variable que almacena la ruta proporcionada por el probador.
  • Ahora, invoca el “ estadística() 'Método y pasar el' ruta de prueba ”como primer parámetro y una función de devolución de llamada como segundo parámetro.
  • La función de devolución de llamada contiene ' error ”como primer parámetro y “ statObj ”como el segundo. El ' error ”contiene errores que surgen durante la ejecución y “startObj” tiene la ruta proporcionada.
  • Dentro de la función, utilice el botón ' si ”Declaración que se ejecuta si no se encuentra ningún error.
  • El ' anidado si Las declaraciones 'se utilizan para asignar el' esArchivo() ' y ' esDirectorio() 'métodos con' statObj ”.
  • Si los métodos devuelven ' verdadero ”Solo entonces esa sección se ejecuta y muestra los mensajes de éxito en consecuencia.

Después de ejecutar el script anterior, la terminal aparece así:

Como puede ver, la ruta proporcionada ahora se detecta y confirma que la ruta proporcionada conduce a un directorio.

Conclusión

Para detectar si la ruta proporcionada es la ruta de un directorio o archivo en NodeJs, se utilizan los métodos de ' esArchivo() ' y ' esDirectorio ' son usados. Las rutas a las que se puede acceder mediante estos métodos las proporciona “ sincronización estadística() ' y ' estadística() 'métodos del' fs ”Módulo NodeJs. Estos métodos almacenan las rutas proporcionadas de forma sincrónica y asincrónica respectivamente. Este blog ha explicado el procedimiento para detectar si la ruta proporcionada conduce a un archivo o directorio en NodeJS.