6.1 Uso del módulo fs para manejar archivos y directorios

El módulo fs (file system) en Nodejs es utilizado para interactuar con el sistema de archivos en una máquina local. Con el uso de este módulo, podemos leer/escribir/eliminar/renombrar archivos o directorios en una ruta específica.

Uso básico del módulo fs

Para importar el módulo fs, solo debemos agregar la siguiente línea de código al principio del archivo:

const fs = require('fs');

Una vez que tenemos el módulo fs importado, podemos hacer uso de sus funciones. Algunas de las funciones más utilizadas son:

fs.readFileSync(path: string, options: string/objeto)

La función fs.readFileSync (leer archivo de forma síncrona) se utiliza para leer el contenido de un archivo en forma sincrónica. Es decir, el código se espera hasta que se haya terminado de leer el archivo.

const fs = require('fs');

const path = './archivo.txt'; // ruta del archivo
const options = {encoding: 'utf-8'}; // opciones de lectura

const contenidoArchivo = fs.readFileSync(path, options);

console.log(contenidoArchivo); // imprimir el contenido del archivo

fs.readFile(path: string, options: string/objeto, callback: función)

La función fs.readFile (leer archivo de forma asíncrona) se utiliza para leer el contenido de un archivo en forma asíncrona. Es decir, el código no espera a que se termine de leer el archivo, sino que continúa su ejecución. En esta función, se debe pasar como tercer argumento una función de callback que recibirá el contenido del archivo.

const fs = require('fs');

const path = './archivo.txt'; // ruta del archivo
const options = {encoding: 'utf-8'}; // opciones de lectura

fs.readFile(path, options, (err, contenidoArchivo) => {
  if (err) {
    console.error(err);
    return;
  }

  console.log(contenidoArchivo); // imprimir el contenido del archivo
});

fs.writeFileSync(path: string, data: string/objeto, options: string/objeto)

La función fs.writeFileSync (escribir archivo de forma síncrona) se utiliza para escribir el contenido en un archivo en forma sincrónica. Es decir, el código se espera hasta que se haya terminado de escribir el archivo.

const fs = require('fs');

const path = './archivo.txt'; // ruta del archivo
const options = {encoding: 'utf-8'}; // opciones de escritura
const data = 'Este es el contenido del archivo'; // contenido a escribir

fs.writeFileSync(path, data, options);

fs.writeFile(path: string, data: string/objeto, options: string/objeto, callback: función)

La función fs.writeFile (escribir archivo de forma asíncrona) se utiliza para escribir el contenido en un archivo en forma asíncrona. Es decir, el código no espera a que se termine de escribir el archivo, sino que continúa su ejecución. En esta función, se debe pasar como cuarto argumento una función de callback que se llamará cuando se termine de escribir el archivo.

const fs = require('fs');

const path = './archivo.txt'; // ruta del archivo
const options = {encoding: 'utf-8'}; // opciones de escritura
const data = 'Este es el contenido del archivo'; // contenido a escribir

fs.writeFile(path, data, options, (err) => {
  if (err) {
    console.error(err);
    return;
  }

  console.log('El archivo se ha escrito correctamente');
});

fs.appendFileSync(path: string, data: string/objeto, options: string/objeto)

La función fs.appendFileSync (agregar contenido a un archivo de forma síncrona) se utiliza para agregar contenido a un archivo en forma sincrónica. Es decir, el código se espera hasta que se haya terminado de agregar el contenido al archivo.

const fs = require('fs');

const path = './archivo.txt'; // ruta del archivo
const options = {encoding: 'utf-8'}; // opciones de escritura
const data = '\nEste es un nuevo contenido que se agrega al archivo'; // contenido a agregar

fs.appendFileSync(path, data, options);

fs.appendFile(path: string, data: string/objeto, options: string/objeto, callback: función)

La función fs.appendFile (agregar contenido a un archivo de forma asíncrona) se utiliza para agregar contenido a un archivo en forma asíncrona. Es decir, el código no espera a que se termine de agregar el contenido al archivo, sino que continúa su ejecución. En esta función, se debe pasar como cuarto argumento una función de callback que se llamará cuando se termine de agregar el contenido al archivo.

const fs = require('fs');

const path = './archivo.txt'; // ruta del archivo
const options = {encoding: 'utf-8'}; // opciones de escritura
const data = '\nEste es un nuevo contenido que se agrega al archivo'; // contenido a agregar

fs.appendFile(path, data, options, (err) => {
  if (err) {
    console.error(err);
    return;
  }

  console.log('Se ha agregado el contenido al archivo');
});

fs.readdirSync(path: string, options: string)

La función fs.readdirSync se utiliza para leer un directorio en forma sincrónica. Es decir, el código se espera hasta que se haya terminado de leer el directorio. Esta función devuelve un array con el nombre de los archivos y/o directorios que se encuentran en el directorio especificado.

const fs = require('fs');

const path = './mi_directorio'; // ruta del directorio
const options = {withFileTypes: true}; // opciones de lectura

const contenidoDirectorio = fs.readdirSync(path, options);

console.log(contenidoDirectorio); // imprimir el contenido del directorio

fs.readdir(path: string, options: string, callback: función)

La función fs.readdir se utiliza para leer un directorio en forma asíncrona. Es decir, el código no espera a que se termine de leer el directorio, sino que continúa su ejecución. En esta función, se debe pasar como tercer argumento una función de callback que recibirá un array con el nombre de los archivos y/o directorios que se encuentran en el directorio especificado.

const fs = require('fs');

const path = './mi_directorio'; // ruta del directorio
const options = {withFileTypes: true}; // opciones de lectura

fs.readdir(path, options, (err, contenidoDirectorio) => {
  if (err) {
    console.error(err);
    return;
  }

  console.log(contenidoDirectorio); // imprimir el contenido del directorio
});

fs.mkdirSync(path: string, options: string)

La función fs.mkdirSync se utiliza para crear un nuevo directorio en forma sincrónica. Es decir, el código se espera hasta que se haya terminado de crear el directorio.

const fs = require('fs');

const path = './mi_directorio_nuevo'; // ruta del nuevo directorio
const options = {recursive: true}; // opciones de creación

fs.mkdirSync(path, options);

fs.mkdir(path: string, options: string, callback: función)

La función fs.mkdir se utiliza para crear un nuevo directorio en forma asíncrona. Es decir, el código no espera a que se termine de crear el directorio, sino que continúa su ejecución. En esta función, se debe pasar como tercer argumento una función de callback que se llamará cuando se termine de crear el directorio.

const fs = require('fs');

const path = './mi_directorio_nuevo'; // ruta del nuevo directorio
const options = {recursive: true}; // opciones de creación

fs.mkdir(path, options, (err) => {
  if (err) {
    console.error(err);
    return;
  }

  console.log('El nuevo directorio se ha creado correctamente');
});

fs.rmdirSync(path: string)

La función fs.rmdirSync se utiliza para eliminar un directorio vacío en forma sincrónica. Es decir, el código se espera hasta que se haya terminado de eliminar el directorio.

const fs = require('fs');

const path = './mi_directorio_vacio'; // ruta del directorio vacío

fs.rmdirSync(path);

fs.rmdir(path: string, callback: función)

La función fs.rmdir se utiliza para eliminar un directorio vacío en forma asíncrona. Es decir, el código no espera a que se termine de eliminar el directorio, sino que continúa su ejecución. En esta función, se debe pasar como segundo argumento una función de callback que se llamará cuando se termine de eliminar el directorio.

const fs = require('fs');

const path = './mi_directorio_vacio'; // ruta del directorio vacío

fs.rmdir(path, (err) => {
  if (err) {
    console.error(err);
    return;
  }

  console.log('El directorio vacío se ha eliminado correctamente');
});

fs.unlinkSync(path: string)

La función fs.unlinkSync se utiliza para eliminar un archivo en forma sincrónica. Es decir, el código se espera hasta que se haya terminado de eliminar el archivo.

const fs = require('fs');

const path = './archivo_a_eliminar.txt'; // ruta del archivo a eliminar

fs.unlinkSync(path);

fs.unlink(path: string, callback: función)

La función fs.unlink se utiliza para eliminar un archivo en forma asíncrona. Es decir, el código no espera a que se termine de eliminar el archivo, sino que continúa su ejecución. En esta función, se debe pasar como segundo argumento una función de callback que se llamará cuando se termine de eliminar el archivo.

const fs = require('fs');

const path = './archivo_a_eliminar.txt'; // ruta del archivo a eliminar

fs.unlink(path, (err) => {
  if (err) {
    console.error(err);
    return;
  }

  console.log('El archivo se ha eliminado correctamente');
});

fs.renameSync(oldPath: string, newPath: string)

La función fs.renameSync se utiliza para renombrar un archivo o un directorio en forma sincrónica. Es decir, el código se espera hasta que se haya terminado de renombrar el archivo o el directorio.

const fs = require('fs');

const oldPath = './archivo_antiguo.txt'; // ruta del archivo antiguo
const newPath = './archivo_nuevo.txt'; // ruta del archivo nuevo

fs.renameSync(oldPath, newPath);

fs.rename(oldPath: string, newPath: string, callback: función)

La función fs.rename se utiliza para renombrar un archivo o un directorio en forma asíncrona. Es decir, el código no espera a que se termine de renombrar el archivo o el directorio, sino que continúa su ejecución. En esta función, se debe pasar como tercer argumento una función de callback que se llamará cuando se termine de renombrar el archivo o el directorio.

const fs = require('fs');

const oldPath = './archivo_antiguo.txt'; // ruta del archivo antiguo
const newPath = './archivo_nuevo.txt'; // ruta del archivo nuevo

fs.rename(oldPath, newPath, (err) => {
  if (err) {
    console.error(err);
    return;
  }

  console.log('El archivo se ha renombrado correctamente');
});

Conclusión

El módulo fs en Nodejs es una herramienta esencial para el manejo de archivos y directorios en una máquina local. Con el uso de este módulo, podemos realizar operaciones como leer/escribir/eliminar/renombrar archivos o directorios en una ruta específica. Como desarrolladores, debemos ser cuidadosos al interactuar con el sistema de archivos y asegurarnos de que nuestras operaciones sean seguras y cumplen con nuestras expectativas.

AnteriorSiguiente

[mwai_chat]

Deja una respuesta

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