NIVELL 3 · Sessió 3 · Recórrer la carpeta de dades
L'explorador
- Missatge
- Manual
- Reptes
- Cartutx
Aquest nivell ja està superat. Pots tornar-lo a jugar, però la puntuació desada no canviarà.
Manual del nivell
Desbloqueja les 3 pàgines del manual per poder jugar. Llegeix-les bé: els reptes en faran preguntes.
Files.list contra Files.walk
Files.list(carpeta) retorna només el primer nivell: no entra a les subcarpetes.
Files.walk(carpeta) recorre tot l'arbre, carpeta per carpeta, fins al final. Inclou també les carpetes: si només vols fitxers, cal filtrar-los.
El Stream s'ha de tancar
Tots dos retornen un Stream<Path> que deixa la carpeta oberta mentre el recorres. Per això van dins d'un try-with-resources, que el tanca sol en acabar.
List<Path> fitxers;
try (Stream<Path> arbre = Files.walk(dades)) {
fitxers = arbre.filter(Files::isRegularFile)
.sorted()
.toList();
}
long total = 0;
for (Path f : fitxers) {
total += Files.size(f);
}| Fragment | Què fa |
|---|---|
try (Stream<Path> arbre = ...) | El recurs declarat al parèntesi es tanca sol en sortir del bloc. |
.filter(Files::isRegularFile) | Es queda només amb els fitxers normals; descarta les carpetes. |
.sorted().toList() | Ordena les rutes i les guarda en una llista. |
total += Files.size(f) | Suma la mida en bytes de cada fitxer. |
La caixa d'eines de Files
createDirectoriesper preparar import, export i backup.copy+REPLACE_EXISTINGper a còpies de seguretat amb data al nom.moveper treure un fitxer d'una carpeta i posar-lo en una altra.deleteIfExistsper esborrar sense que peti.readAttributesper a les dates de creació i modificació.writeStringper escriure un text en un fitxer.
Nivell superat
BUG·0x00 localitzat a l'arbre de carpetes. Tercer cartutx recuperat.
- XP guanyats
- 0
- Errors
- 0
- Pistes
- 0
Anota bé la lletra i la seva posició: abans del boss hauràs de reconstruir la contrasenya.