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.)