Andale
22-03-2007, 12:14
Salve a tutti, voglio realizzare un programma che, data una particolare cartella, mi stampi tutte le sottocartelle.
Ho realizzato il seguente codice, il problema è che in questo modo stampa la stessa cartella più volte (in base al numero di files al suo interno) sebbene abbia implementato il codice utilizzando un TreeMap per evitarlo
Ecco il metodo:
public class Scansione {
private TreeMap directoryMap = new TreeMap();
private File tmp = null;
private void scan(File file) {
File[] filesName = null;
if(file.isFile()) {
tmp = new File(file.getParent());
String path = tmp.getAbsolutePath();
if(!directoryMap.containsKey(path))
directoryMap.put(path,tmp);
System.out.println(directoryMap.get(path));
}
else if(file.isDirectory()) {
filesName = file.listFiles();
for(int i=0; i<filesName.length; i++)
scan(filesName[i]);
}
}
Ho realizzato il seguente codice, il problema è che in questo modo stampa la stessa cartella più volte (in base al numero di files al suo interno) sebbene abbia implementato il codice utilizzando un TreeMap per evitarlo
Ecco il metodo:
public class Scansione {
private TreeMap directoryMap = new TreeMap();
private File tmp = null;
private void scan(File file) {
File[] filesName = null;
if(file.isFile()) {
tmp = new File(file.getParent());
String path = tmp.getAbsolutePath();
if(!directoryMap.containsKey(path))
directoryMap.put(path,tmp);
System.out.println(directoryMap.get(path));
}
else if(file.isDirectory()) {
filesName = file.listFiles();
for(int i=0; i<filesName.length; i++)
scan(filesName[i]);
}
}