Mis apuntes de desarrollo web </>

File System

Node js cuenta con un módulo centralizado, llamado File System (fs), diseñado específicamente para la manipulación de archivos.

Este módulo permite realizar operaciones como leer, escribir, actualizar y eliminar archivos.

Operaciones con File System

Opeaciones Síncronas

fs.readFileSync():
Lectura del contenido de archivos.
fs.writeFileSync():
Escritura de contenido de archivos.
fs.appendFileSync():
Añadir datos al final de un archivo.
fs.unlinkSync():
Eliminar un archivo.

Ejemplo:

ejemplo File System
ejemplo File System

Opeaciones Asíncronas

fs.readFile():
Lectura del contenido de archivos.
fs.writeFile():
Escritura de contenido de archivos.
fs.appendFile():
Añadir datos al final de un archivo.
fs.unlink():
Eliminar un archivo.

La principal diferencia con las operaciones síncronas es que las asíncronas se manejan mediante Callbacks, Promesas o Async/await.

Ejemplo con Async/await:

ejemplo File System con Async/await

Se recomienda usar Promesas o Async/await y evitar el uso de Callbacks debido a que puede generarse un callback hell.

Lectura de directorios

El método readdir() es parte del módulo fs y se utiliza para leer el contenido de un directorio. Cuando se usa readdir(), se obtiene una lista de los nombres de los archivos y subdirectorios que se encuentran dentro de un directorio específico. Tambien tiene una versión síncrona (fs.readdirSync) y una versión asíncrona (fs.readdir).

El primer argumento es el directorio el cual se va a leer. Tambien tiene un argumento opcional que especifica opciones adicionales, como la codificación de los nombres de los archivos o si se quiere obtener objetos fs.Dirent que contienen metadatos adicionales sobre los archivos.

withFileTypes: true:
Si se especifica esta opción, los elementos en el array de archivos serán objetos fs.Dirent en lugar de solo los nombres de los archivos, lo que permite distinguir fácilmente entre archivos y directorios usando métodos como isDirectory() y isFile().

Ejemplo:

ejemplo readdir ejemplo readdir

Obtener información de archivos

El método stat() se utiliza para obtener información sobre un archivo o un directorio. Esta información se presenta en un objeto de tipo fs.Stats, que contiene varios detalles sobre el archivo o directorio, como su tamaño, permisos, fecha de creación, y si es un archivo regular o un directorio.

Existen varias versiones de este método:

Síncrona (fs.statSync):
Bloquea la ejecución hasta que la operación se completa.
Asíncrona (fs.stat):
Utiliza un callback para manejar la respuesta
Versión Promisificada (fs.promises.stat):
Devuelve una promesa, permitiendo usar async/await.

Propiedades

stats.isFile():
Devuelve true si la ruta es un archivo.
stats.isDirectory()
Devuelve true si la ruta es un directorio.
stats.size:
Tamaño del archivo en bytes.
stats.birthtime:
Fecha de creación del archivo.
stats.mtime:
Fecha de la última modificación del archivo.
stats.atime:
Fecha de la última vez que el archivo fue accedido.
stats.ctime:
Fecha del último cambio en los metadatos del archivo.

Ejemplo:

ejemplo stat ejemplo stat