Creación de archivos y directorios

Completado

Como desarrollador de Tailwind Traders, está a punto de profundizar en el uso práctico de la creación y eliminación de nuevos archivos y directorios mediante programación. Este es un requisito común para las aplicaciones de línea de negocio.

Hasta ahora, ha obtenido información sobre cómo trabajar con archivos y directorios mediante el módulo fs. También se puede usar el módulo fs para crear, eliminar, copiar, mover o manipular de cualquier otra forma archivos y directorios en un sistema mediante programación.

Creación de directorios con fs.mkdir

El método mkdir permite crear directorios. Con el siguiente método se crea una carpeta denominada newDir dentro de la carpeta 201.

const fs = require("fs").promises;
const path = require("path");

await fs.mkdir(path.join(__dirname, "stores", "201", "newDir"));

La estructura de archivos /stores/201 ya debe existir; de lo contrario, se produce un error en este método. Se puede pasar una marca recursive opcional si la estructura de archivos no existe y quiere que la operación la cree.

await fs.mkdir(path.join(__dirname, "newDir", "stores", "201", "newDir"), {
  recursive: true
});

Garantía de que los directorios existen

Si el directorio que intenta crear ya existe, el método mkdir genera un error. Esa situación no es buena, porque el error hace que el programa se detenga abruptamente. Para evitar esta situación, Node.js recomienda ajustar el método mkdir en un elemento try/catch si tiene previsto manipular el archivo o el directorio después de abrirlo, como nosotros.

const pathToCreate = path.join(__dirname, "stores", "201", "newDirectory");

// create the salesTotal directory if it doesn't exist
try {
  await fs.mkdir(salesTotalsDir);
} catch {
  console.log(`${salesTotalsDir} already exists.`);
}

Creación de archivos con fs.writeFile

Se pueden crear archivos mediante el método fs.writeFile. Este método toma una ruta de acceso al archivo y los datos que se van a escribir en él. Si el archivo ya existe, se sobrescribe.

Por ejemplo, este código crea un archivo denominado greeting.txt con el texto "Hola mundo" dentro.

const pathToFile = path.join(__dirname, "greeting.txt");
await fs.writeFile(pathToFile, "Hello World!");

Si se omite el último parámetro, que son los datos que se van a escribir en el archivo, Node.js escribe "undefined" en el archivo. Probablemente esta situación no sea lo que busca. Para escribir un archivo vacío, pasaremos una cadena vacía. Una opción aún mejor sería pasar la función String, que en la práctica hace lo mismo, pero sin dejar comillas vacías en el código.

const pathToFile = path.join(__dirname, "greeting.txt");
await fs.writeFile(pathToFile, String());

En el ejercicio siguiente, se usarán estos conocimientos sobre cómo crear archivos y directorios para ampliar el programa con el fin de crear un directorio en el que almacenar el total de todos los archivos de ventas.