Cómo fs.stat() funciona?
Si desea utilizar una función de devolución de llamada fs/asíncrono, no utilice la versión sincrónica, utilice fs.stat():
var fs = require('fs');
console.log("+++++++++++++++++++++++++++++++++++++++");
fs.stat(pathname, function(err, stats) {
console.log(stats.isDirectory());
});
console.log("+++++++++++++++++++++++++++++++++++++++");
Hay más información sobre fs.stat(). Usted puede obtener una gran cantidad de información sobre el objeto principal:
fs.stat(path, function(err, stats) {
console.log(stats)
}
Salida:
{ dev: 2049,
ino: 305352,
mode: 16877,
nlink: 12,
uid: 1000,
gid: 1000,
rdev: 0,
size: 4096,
blksize: 4096,
blocks: 8,
atime: '2009-06-29T11:11:55Z',
mtime: '2009-06-29T11:11:40Z',
ctime: '2009-06-29T11:11:40Z' }
gran cantidad de elementos es a menudo inútil para nosotros, sí. Pero aquí es el significado de todas estas variables, according to this article:
- dev: ID del dispositivo que contiene el archivo
- modo: protección de archivos
- nlink: número de enlaces duros en el archivo
- uid: ID de usuario del propietario del archivo.
- gid: grupo ID del propietario del archivo.
- rdev: ID del dispositivo si el archivo es un archivo especial.
- blksize: tamaño de bloque para la E/S del sistema de archivos.
- ino: Número de inodo del archivo. Un inodo es una estructura de datos del sistema de archivos que -
- almacena información sobre un archivo.
- tamaño: tamaño total del archivo en bytes.
- bloques: cantidad de bloques asignados para el archivo.
- atime: fecha del objeto que representa la última hora de acceso del archivo.
- mtime: Fecha en que el objeto representa la última hora de modificación del archivo.
- ctime: fecha representa la última vez que se modificó el inodo del archivo.
Puede también, como nodeJS documentation says, obtener más información como:
stats.isFile()
stats.isDirectory()
stats.isBlockDevice()
stats.isSymbolicLink() (only valid with fs.lstat())
stats.isCharacterDevice()
stats.isFIFO()
stats.isSocket()
Sobre stats.isSymbolicLink(), hay otra función que la fs.stat, llamado fs.lstat(), y aquí es la diferencia entre ellos:
stat
sigue symlinks. Cuando se le da una ruta que es un enlace simbólico, devuelve la estadística del objetivo del enlace simbólico.
lstat
no sigue enlaces simbólicos. Cuando se le da una ruta que es un enlace simbólico, devuelve la estadística del enlace simbólico y no su destino.
excelente, ¡gracias! –