EJERCICIO PARA TRABAJAR CON UN SISTEMA DE ARCHIVOS

Node.js tiene potentes mecanismos integrados para trabajar con el sistema de archivos.
OBJETIVOS DE APRENDIZAJE
Al final de este modulo , podremos:
1) Trabajar con directorios
2) Crear y eliminar archivos
3) Leer archivos
4) Escribir en archivos
5) Analizar datos de esos archivos
PRERREQUISITOS
1) Conocimiento del lenguaje de programación JS
2) Familiaridad con construcciones de programación básicas, como bucles y sentencias ''íf'''
TRABAJA CON EL SISTEMA DE ARCHIVOS
Aquí aprenderemos a usar Node.js para leer el sistema de archivos y descubrir archivos al igual que directorios.
MODULO FS
El modulo ''fs'' nos permite realizar varias operaciones en archivos y directorios. Tiene bastantes métodos para elegir. Por ahora nos vamos a centrar en lo que necesita saber para trabajar con directorios utilizando el modulo ''fs''
const fs = require("fs").promises;
LISTADO DE CONTENIDOS EN UN DIRECTORIO
Una de las cosas que hará bastante con el modulo '''fs'' es enumerar el contenido en un directorio dado por ejemplo nos puede mostrar carpeta y subcarpetas en ahí existan.
LISTADO DE CONTENIDOS
Para leer el contenido de la carpeta, puede usar el método readdir, la mayoria de las operaciones en el modulo ''fs'' tienen opciones sicronicas y asincronicas.
El ''readdir'' devuelve una lista de elementos.
Codigo
const items = await fs.readdir("stores");
console.log(items); // [ 201, 202, sales.json, totals.txt ]
Nota: Observa que el orden de los resultados devueltos por los métodos readdir y los readdirsync, están en orden alfabético.
DETERMINAR TIPO DE CONTENIDO
Cuando lee el contenido de un directorio, recupera las carpetas y los archivos como una matriz de cadenas ,Puede determinar cuales son archivos frente a cuales son directorios pasando la withFileTypes opción. Esto devolverá una matriz de Dirent objetos en lugar de una matriz cadenas.El Dirent objeto tiene isFiley isDirectory metodos que puede usar para determinar con que tipo de objeto esta tratando.
Codigo
const items = await fs.readdir("stores", { withFileTypes: true });
for (let item of items) {
const type = item.isDirectory() ? "folder" : "file";
console.log(`${item.name}: ${type}`);
// 201: folder, 202: folder, sales.json: file, totals.txt: file
}
NOTA SOBRE RECURSIVIDAD
Un requisito común es tener una carpeta con subcarpetas, que también tienen subcarpetas. En algún lugar de este árbol de carpetas anidadas hay archivos que necesita. Necesita un programa que pueda recorrer ese árbol de carpetas para encontrar los archivos.para hacer eso, deberá determinar si un elemento es una carpeta y luego buscar archivos en esa carpeta. Tendrá que repetir esto para cada carpeta que encuentre.
Puede buscar estructuras de directorio anidadas teniendo un método que encuentre carpetas y luego se llame a si mismo para encontrar carpetas dentro de esas carpetas.De esta manera, el programa ''recorrerá'' el árbol de directorios hasta que lea todas las carpetas dentro. Cuando un método se llama a si mismo ''recursion''.
Codigo
function findFiles(folderName) {
const items = await fs.readdir(folderName, { withFileTypes: true });
items.forEach((item) => {
if (item.isDirectory()) {
// this is a folder, so call this method again and pass in
// the path to the folder
findFiles(`${folderName}/${item.name}`);
} else {
console.log(`Found file: ${item.name} in folder: ${folderName}`);
}
});
}
findFiles("stores");
La recursion es una característica poderosa de muchos lenguajes de programación, y es probable que la uses en la vida real.
Ejercicio
Ingresaremos a la siguiente pagina para poner en practica lo aprendido
NOTA: Ya que ingreses a la pagina primero asegúrate de activar Microsoft Sandbox haciendo clic en ACTIVAR SANDBOX en la parte superior de la pagina
En esta pagina realizaremos el ejercicio con los pasos que nos muestran ahí, solo se basa en seguir los pasos y lo mas importante es saber lo que vamos realizando, aquí te dejo un video tutorial que te ayudara mucho a realizar este trabajo.
NOTA: Cabe recalcar que este vídeo no es de mi autoria.
Aquí adjunto la finalizacion de mi trabajo ya realizado
Comentarios
Publicar un comentario