Tämän tehtävän tarkoituksena on johdattaa rekursioon käyttämiseen ohjelmoinnissa. Jos koet jo ymmärtäväsi rekursion hyvin, niin kannattaa siirtyä suoraan viikon 2 TMC-tehtäviin.
Javan File-luokka sisältää helppokäyttöisiä funktioita kansion tiedostojen ja kansioiden listaamiseen, niiden nimien kyselyyn ja alikansioon siirtymiseen. Komennolla
File rootFolder = new File(System.getProperty("user.dir"));
pääset käsiksi projektikansioon. Mikäli File-tyyppinen olio f viittaa kansioon, voidaan kaikki kansion tiedostot ja alikansiot listata komennolla f.listFiles(). Komento f.getName() palauttaa sen kansion/tiedoston nimen, johon olio f viittaa. Metodien f.isFile() ja f.isDirectory() avulla voidaan selvittää, viittaako f tiedostoon vaiko kansioon.
Tehtävä jakaantuu kolmeen osaan.
void tulosta(File kansio), joka tulostaa annetun kansion tiedostot ja alikansiot.
void tulosta2(File kansio) tälle alikansiolle. Metodi tulosta2 tulostaa annetusta kansiosta kaikkien tiedostojen ja alikansioiden nimet. (Mitä huomaat tulosta ja tulosta2 koodien rakenteesta?)
tulosta siten, että se tulostaa kaikki alikansioiden alikansioissakin ja alikansioiden alikansioiden alikansioissakin jne. vaikka sisäkkäisiä alikansiokerroksia olisi esimerkiksi 1000 tai enemmän? (Ja ilman, että sinun tarvitsee toteuttaa tulosta3, tulosta4, ...,tulosta1000.)