Esempio di svolgimento della vista indentata di una porzione del filesystem
Completion requirements
Problema
Dato un oggetto 'nodo' di classe File visualizza la lista dei nomi di file/cartelle contenuti nell'albero che ha radice in 'nodo', la lista è presentata con una riga per ogni nodo, la riga inizia con "file" o "cartella" a seconda del caso, seguita dal nome del nodo; le righe sono presentate in forma indentata: si parte da assenza di indentazione, si aumenta di un tab ("\t") per ogni livello, i nodi dello stesso livello hanno stesso livello di indentazione. Per ogni cartella si presentano prima tutti i file e poi le cartelle con gli eventuali contenuti.
Esempio di svolgimento
package testfile; import java.io.File; /** * * @author Gianni */ public class TestFile { /** * @param args the command line arguments */ public static void main(String[] args) {
visita(new File(".")); } public static void visita(File f){ visita(f,0); } private static void visita(File f, int livello){ if (f.isFile()){ stampaNodo(f,livello,"file: "); } else { if (f.isDirectory()){ for (File figlio:f.listFiles()){ //tratta solo i file if (figlio.isFile()){ visita(figlio,livello+1); } } for (File figlio:f.listFiles()){ //tratta solo le cartelle if (figlio.isDirectory()){ visita(figlio,livello+1); } } stampaNodo(f,livello,"cartella: "); } } } private static void stampaNodo(File f, int livello, String msg){ for (int i = 0; i < livello; i++) { System.out.print("\t"); } System.out.println(msg+f.getName()); } }
Last modified: Thursday, 27 March 2014, 1:12 PM