El método filehandle.stat() se define en el módulo Sistema de archivos de Node.js. El módulo de Sistema de Archivos es básicamente para interactuar con el disco duro de las computadoras de los usuarios. El método filehandle.stat() brinda información específica de archivos y carpetas utilizando métodos definidos en objetos de estadísticas (objeto devuelto por el método de estadísticas). El método devuelve una promesa resuelta o rechazada.
Sintaxis:
filehandle.stat(options);
Parámetro: este método acepta un solo parámetro como se mencionó anteriormente y se describe a continuación:
- options: Es un parámetro opcional. Un parámetro de opciones es ‘bigint’, es un valor booleano. Aquí especificamos si el valor numérico en el objeto de estadísticas devuelto por filehandle.stat() es mordaz o no (predeterminado-falso).
Valor de retorno: devuelve una promesa resuelta o rechazada. La promesa se resuelve con el objeto de estadísticas si el directorio se lee con éxito; de lo contrario, se rechaza con un objeto de error si ocurre algún error (el directorio especificado por ejemplo no existe o no tiene permisos para leer archivos, etc.) ).
El objeto de estadísticas devuelto por la promesa resuelta tiene algunas propiedades y métodos definidos que ayudan a obtener algunos detalles específicos sobre los archivos o carpetas de destino. Algunos de los métodos se especifican a continuación.
- stats.isDirectory(): devuelve verdadero si el objeto stats describe un directorio del sistema de archivos.
- stats.isFile(): devuelve verdadero si el objeto de estadísticas describe un archivo normal.
- stats.isSocket(): Devuelve verdadero si el objeto stats describe un socket.
- stats.isSymbolicLink(): devuelve verdadero si el objeto stats describe un enlace simbólico.
- stats.isFile(): devuelve verdadero si el objeto de estadísticas describe un archivo normal.
- stats.isFIFO(): devuelve verdadero si el objeto de estadísticas describe el primero en entrar, el primero en salir.
- stats.size: Especifica el tamaño del archivo en bytes.
- stats.blocks: Especifica el número de bloques asignados para el archivo.
Ejemplo 1: este ejemplo diferencia archivos y carpetas de un directorio utilizando información de estadísticas de cada subdirectorio.
// Node.js program to demonstrate the // filehandle.stat() Method // Importing File System and Utilities module const fs = require('fs') const fileOrFolder = async (dir) => { let filehandle, stats = null try { filehandle = await fs .promises.open(dir, mode = 'r+') // Stats of directory stats = await filehandle.stat() } finally { if (filehandle) { // Close the file if it is opened. await filehandle.close(); } } // File or Folder if (stats.isFile()) { console.log(`${dir} ----> File`) } else { console.log(`${dir} ----> Folder`) } } const allDir = fs.readdirSync(process.cwd()) allDir.forEach(dir => { fileOrFolder(dir) .catch(err => { console.log(`Error Occurs, Error code -> ${err.code}, Error NO -> ${err.errno}`) }) })
Producción:
Ejemplo 2: este ejemplo cuenta el tamaño de cada subdirectorio utilizando su información de estadísticas.
// Node.js program to demonstrate the // filehandle.stat() Method // Importing File System and Utilities module const fs = require('fs') const sizeOfSubDirectory = async (dir) => { let filehandle, stats = null try { filehandle = await fs .promises.open(dir, mode = 'r+') //Stats of directory stats = await filehandle.stat() } finally { if (filehandle) { // Close the file if it is opened. await filehandle.close(); } } //size of sub-directory console.log(`${dir} --------> ${stats.size} bytes`) } const allDir = fs.readdirSync(process.cwd()) allDir.forEach(dir => { sizeOfSubDirectory(dir) .catch(err => { console.log(`Error Occurs, Error code -> ${err.code}, Error NO -> ${err.errno}`) }) })
Producción:
Referencia: https://nodejs.org/api/fs.html#fs_filehandle_stat_options
Publicación traducida automáticamente
Artículo escrito por hunter__js y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA