Método Node.js fs.fstat()

El método fs.fstat() se usa para devolver información sobre el descriptor de archivo dado. El objeto fs.Stat devuelto tiene varios campos y métodos para obtener más detalles sobre el archivo.

Sintaxis:

fs.fstat( fd, options, callback )

Parámetros: este método acepta tres parámetros, como se mencionó anteriormente y se describe a continuación:

  • fd: es un número entero que representa el descriptor de archivo utilizado por el método.
  • opciones: es un objeto que se puede usar para especificar parámetros opcionales que afectarán la salida. Tiene un parámetro opcional:
    • bigint: Es un valor booleano que especifica si los valores numéricos devueltos en el objeto fs.Stats son bigint. El valor predeterminado es falso.
  • callback: Es la función que sería llamada cuando se ejecuta el método.
    • err: Es un error que se lanzaría si el método
    • Stats: Es el objeto Stats que contiene los detalles de la ruta del archivo.

Los siguientes ejemplos ilustran el método fs.fstat() en Node.js:

Ejemplo 1: este ejemplo utiliza el método fs.fstat() para obtener los detalles de un archivo y un directorio.

// Node.js program to demonstrate the
// fs.fstat() method
  
// Import the filesystem module
const fs = require('fs');
  
// Define the file descriptor for a file
let file_fd = fs.openSync('example_file.txt', 'r');
  
// Getting information for a file
fs.fstat(file_fd, (error, stats) => {
  if (error) {
    console.log(error);
  }
  else {
    console.log("Stats object for: example_file.txt");
    console.log(stats);
  
    // Using methods of the Stats object
    console.log("Path is file:", stats.isFile());
    console.log("Path is directory:", stats.isDirectory());
  }
});
  
// Define the file descriptor for a folder
let dir_fd = fs.openSync('example_directory', 'r');
  
// Getting information for a directory
fs.fstat(dir_fd, (error, stats) => {
  if (error) {
    console.log(error);
  }
  else {
    console.log("Stats object for: example_directory.txt");
    console.log(stats);
  
    // Using methods of the Stats object
    console.log("Path is file:", stats.isFile());
    console.log("Path is directory:", stats.isDirectory());
  }
});

Producción:

Stats object for: example_file.txt
Stats {
  dev: 3229478529,
  mode: 33206,
  nlink: 1,
  uid: 0,
  gid: 0,
  rdev: 0,
  blksize: 4096,
  ino: 281474976780635,
  size: 0,
  blocks: 0,
  atimeMs: 1584389463707.251,
  mtimeMs: 1582209885466.6848,
  ctimeMs: 1582209885466.6848,
  birthtimeMs: 1584389463707.251,
  atime: 2020-03-16T20:11:03.707Z,
  mtime: 2020-02-20T14:44:45.467Z,
  ctime: 2020-02-20T14:44:45.467Z,
  birthtime: 2020-03-16T20:11:03.707Z
}
Path is file: true
Path is directory: false
Stats object for: example_directory.txt
Stats {
  dev: 3229478529,
  mode: 16822,
  nlink: 1,
  uid: 0,
  gid: 0,
  rdev: 0,
  blksize: 4096,
  ino: 281474976780638,
  size: 0,
  blocks: 0,
  atimeMs: 1584429828080.8872,
  mtimeMs: 1581074249467.7114,
  ctimeMs: 1584389463715.2507,
  birthtimeMs: 1584389463715.2507,
  atime: 2020-03-17T07:23:48.081Z,
  mtime: 2020-02-07T11:17:29.468Z,
  ctime: 2020-03-16T20:11:03.715Z,
  birthtime: 2020-03-16T20:11:03.715Z
}
Path is file: false
Path is directory: true

Ejemplo 2: este ejemplo usa el método fs.fstat() para obtener los detalles de un archivo con y sin la opción bigint.

// Node.js program to demonstrate the
// fs.fstat() method
  
// Import the filesystem module
const fs = require('fs');
  
// Define the file descriptor for a file
let file_fd = fs.openSync('example_file.txt', 'r');
  
fs.fstat(file_fd, (error, stats) => {
  console.log(stats);
});
  
// Using the bigint option to return
// the values in big integer format
fs.fstat(file_fd, { bigint: true }, (error, stats) => {
  console.log(stats);
});

Producción:

Stats {
  dev: 3229478529,
  mode: 33206,
  nlink: 1,
  uid: 0,
  gid: 0,
  rdev: 0,
  blksize: 4096,
  ino: 281474976780635,
  size: 0,
  blocks: 0,
  atimeMs: 1584389463707.251,
  mtimeMs: 1582209885466.6848,
  ctimeMs: 1582209885466.6848,
  birthtimeMs: 1584389463707.251,
  atime: 2020-03-16T20:11:03.707Z,
  mtime: 2020-02-20T14:44:45.467Z,
  ctime: 2020-02-20T14:44:45.467Z,
  birthtime: 2020-03-16T20:11:03.707Z
}
BigIntStats {
  dev: 3229478529n,
  mode: 33206n,
  nlink: 1n,
  uid: 0n,
  gid: 0n,
  rdev: 0n,
  blksize: 4096n,
  ino: 281474976780635n,
  size: 0n,
  blocks: 0n,
  atimeMs: 1584389463707n,
  mtimeMs: 1582209885466n,
  ctimeMs: 1582209885466n,
  birthtimeMs: 1584389463707n,
  atimeNs: 1584389463707251000n,
  mtimeNs: 1582209885466684900n,
  ctimeNs: 1582209885466684900n,
  birthtimeNs: 1584389463707251000n,
  atime: 2020-03-16T20:11:03.707Z,
  mtime: 2020-02-20T14:44:45.466Z,
  ctime: 2020-02-20T14:44:45.466Z,
  birthtime: 2020-03-16T20:11:03.707Z
}

Referencia: https://nodejs.org/api/fs.html#fs_fs_fstat_fd_options_callback

Publicación traducida automáticamente

Artículo escrito por sayantanm19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *