EJERCICIO PARA TRABAJAR CON UN SISTEMA DE ARCHIVOS

Solución Node.js – “npm no reconocido como comando interno o ...

INTRODUCCIÓN
 
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 



 FIN ♥   ♥ 









Comentarios

Entradas populares