Non hai indicato cosa deve succedere quando ci sono più cartelle con lo stesso nome in posizioni diverse del file system. Suppongo in questo caso tu voglia restituire tutte le occorrenze.
Puoi usare una funzione ricorsiva per visitare l'albero delle sotto cartelle, eccone lo pseudocodice:
Codice:
function cerca_cartella(nome_cartella, percorso) {
contenuto_cartella = leggi_cartella(percorso);
occorrenze_trovate = [];
foreach (contenuto_cartella as percorso_oggetto) {
if (percorso_oggetto è una cartella e si chiama "nome_cartella") {
occorrenze_trovate.push(percorso_oggetto);
}
elseif (percorso_oggetto è una cartella ed è diverso dalle cartelle "speciali" . e ..) {
occorrenze_trovate.merge(cerca_cartella(nome_cartella, percorso_oggetto));
}
}
return occorrenze_trovate;
}
il risultato è un vettore contenente i percorsi completi di tutte le sotto cartelle con il nome indicato.
Se non ti è chiaro, chiedi pure.