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.

Deja una respuesta