Método Node.js fs.close()

El método fs.close() se usa para cerrar de forma asíncrona el descriptor de archivo dado, borrando así el archivo asociado con él. Esto permitirá que el descriptor de archivo se reutilice para otros archivos. Llamar a fs.close() en un descriptor de archivo mientras se realiza alguna otra operación puede generar un comportamiento indefinido.

Sintaxis:

fs.close( fd, callback )

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

  • fd: es un número entero que denota el descriptor de archivo del archivo para el cual se cerrará.
  • devolución de llamada: Es una función que sería llamada cuando se ejecuta el método.
    • err: es un error que se lanzaría si el método falla.

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

Ejemplo 1: Este ejemplo muestra el cierre de un descriptor de archivo.

// Node.js program to demonstrate the
// fs.close() method
  
// Import the filesystem module
const fs = require('fs');
  
// Get the file descriptor of the given path
file_descriptor = fs.openSync("example.txt");
console.log("The file descriptor is:", file_descriptor);
  
// Close the file descriptor
fs.close(file_descriptor, (err) => {
  if (err)
    console.error('Failed to close file', err);
  else {
    console.log("\n> File Closed successfully");
  }
});

Producción:

The file descriptor is: 3

> File Closed successfully

Ejemplo 2: este ejemplo muestra el cierre de un descriptor de archivo y el intento de acceder nuevamente a ese descriptor de archivo cerrado.

// Node.js program to demonstrate the
// fs.close() method
  
// Import the filesystem module
const fs = require('fs');
  
// Get the file descriptor of the given path
file_descriptor = fs.openSync("example.txt");
console.log("The file descriptor is:", file_descriptor);
  
console.log("\n> Finding the stats of the file");
try {
  
  // Attempting to find stats of file before closing
  statsObj = fs.fstatSync(file_descriptor);
  console.log("Stats of the file generated");
  
  // Closing the file descriptor
  console.log("\n> Closing the file descriptor");
  fs.close(file_descriptor, (err) => {
    if (err)
      console.error("Failed to close file", err);
    else {
      console.log("File Closed successfully");
  
      try {
        // Attempting to find stats of file after closing
        console.log("\n> Finding the stats of the file again");
        statsObj = fs.fstatSync(file_descriptor);
        console.log("Stats of the file generated");
      }
      catch (err) {
        console.error("Cannot find stats of file", err);
      }
    }
  });
  
} catch (err) {
  console.error("Cannot find stats of file", err);
}

Producción:

The file descriptor is: 3

> Finding the stats of the file
Stats of the file generated

> Closing the file descriptor
File Closed successfully

> Finding the stats of the file again
Cannot find stats of file Error: EBADF: bad file descriptor, fstat
    at Object.fstatSync (fs.js:897:3)
    at G:\tutorials\nodejs-fs-close\index.js:42:23
    at FSReqCallback.oncomplete (fs.js:146:23) {
  fd: 3,
  errno: -4083,
  syscall: 'fstat',
  code: 'EBADF'
}

Referencia: https://nodejs.org/api/fs.html#fs_fs_close_fd_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 *