A veces es necesario verificar si la ruta dada es un archivo o un directorio para que se puedan realizar diferentes operaciones en función del resultado. Por ejemplo, para registrar la información del directorio y el archivo por separado.
En Node.js, el manejo de archivos está a cargo del módulo fs. Puedes leer más sobre esto aquí . Podemos verificar la ruta del archivo o directorio en Node.js tanto de forma síncrona como asíncrona.
Nota: la versión asincrónica suele ser preferible si le preocupa el rendimiento de la aplicación.
Método síncrono: las operaciones síncronas son excelentes para realizar operaciones de archivo/directorio únicas antes de devolver un módulo. Para verificar la ruta en modo síncrono en el módulo fs, podemos usar el método statSync(). El método fs.statSync(ruta) devuelve la instancia de fs.Stats que se asigna a estadísticas variables. Un objeto fs.Stats proporciona información sobre un archivo. El método stats.isFile() devuelve verdadero si la ruta del archivo es Archivo; de lo contrario, devuelve falso. El método stats.isDirectory() devuelve verdadero si la ruta del archivo es Directorio; de lo contrario, devuelve falso.
Ejemplo 1:
// Require the given module var fs = require('fs'); // Use statSync() method to store the returned // instance into variable named stats var stats = fs.statSync("/Users/divyarani/Documents/geekforgeeks/geeks.js"); // Use isFile() method to log the result to screen console.log('is file ? ' + stats.isFile()); var stats = fs.statSync("/Users/divyarani/Documents/geekforgeeks/geek"); // Use isDirectory() method to log the result to screen console.log('is directory ? ' + stats.isDirectory());
Producción:
is file ? true is directory ? true
Ejemplo 2:
// Require the given module var fs = require('fs'); // Use statSync() method to store the returned // instance into variable named stats var stats = fs.statSync("/Users/divyarani/Documents/geekforgeeks/geek"); // Use isFile() method to log the result to the screen console.log('is file ? ' + stats.isFile()); var stats = fs.statSync("/Users/divyarani/Documents/geekforgeeks/geeks.js"); // Use isDirectory() method to log the result to screen console.log('is directory ? ' + stats.isDirectory());
Producción:
is file ? false is directory ? false
Método asíncrono: en la versión asíncrona, el bloque de código dentro de la función no bloqueará en su mayoría al usuario final y no se impedirá que el usuario realice diferentes acciones para varios subprocesos. Para verificar la ruta en modo asíncrono en el módulo fs, podemos usar el método fs.stat(). El método fs.stat() toma dos parámetros, el primer parámetro es la ruta y el segundo es la función de devolución de llamada con dos parámetros, uno es para el error en caso de que ocurra un error y el segundo parámetro son los datos recuperados llamando a fs.stat() método que se almacena en la variable stats. El método stats.isFile() devuelve verdadero si la ruta del archivo es Archivo; de lo contrario, devuelve falso. El método stats.isDirectory() devuelve verdadero si la ruta del archivo es Directorio; de lo contrario, devuelve falso.
Ejemplo 1:
// Require the given module var fs = require('fs'), path = "/Users/divyarani/Documents/geekforgeeks/geek" // Use stat() method fs.stat(path, (err, stats) => { if( !err ){ if(stats.isFile()){ console.log('is file ? ' + stats.isFile()); } else if(stats.isDirectory()){ console.log('is directory? ' + stats.isDirectory()); } } else throw err; });
Producción:
is directory? true
Ejemplo 2:
// Require the given module var fs = require('fs'), path = "/Users/divyarani/Documents/geekforgeeks/geeks.js" // Use stat() method fs.stat(path, (err, stats) => { if( !err ){ if(stats.isFile()){ console.log('is file ? ' + stats.isFile()); } else if(stats.isDirectory()){ console.log('is directory? ' + stats.isDirectory()); } } else throw err; });
Producción:
is file ? true
Publicación traducida automáticamente
Artículo escrito por DivyaRani1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA