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:
- El método “statSync()” para detectar la ruta que conduce al directorio o archivo
- El método “stat()” para detectar la ruta que conduce al directorio o archivo
¿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.