martedì, dicembre 02, 2014

Esercitazioni su node.js: esercizio 4

Testo dell'esercizio
Creare un programma che stampi a video il contenuto di una cartella filtrato per estensione del file.
Il programma  accetterà da linea di comando, il percorso della cartella come primo argomento e l'estensione dei file da filtrare come secondo parametro.
Ad esempio, invocando node program.js c:/test txt, il programma visualizzerà la lista dei file della cartella c:/test con estensione .txt.

Suggerimenti
Consultare la documentazione del metodo fs.readdir(...).
Potrebbe essere anche utile consultare il modulo path, da includere nel programma.

Buon lavoro!

Una possibile soluzione
 var fs = require('fs'),  
     path = require('path');  
   
     fs.readdir(process.argv[2], function (err, listaFiles) {  
        listaFiles.forEach(function (file) {  
           if (path.extname(file) === '.' + process.argv[3])  
              console.log(file);  
        });  
     });  
   

La funzione di callback riceve come parametro un array di files.
Ogni array eredita il metodo forEach() da Array.prototype, che cicla l'array invocando un'altra funzione di callback che riceve come parametro l'elemento corrente dell'array.
Utillizando il modulo path, possiamo usare il metodo extname() che ritorna l'estenzione del nome file compreso il punto.

Ho aggiornato su github il progetto, effettuate un git pull per aggiornare i sorgenti che avete in locale, come mostrato in questo post

Alla prox.
Ivan

1 commento: