SwatMaster
28-07-2010, 23:28
Salve a tutti.
Sto provando a fare un piccolo applicativo Java che dovrebbe restituirmi un file di testo contenente la lista di tutti i file di una cartella indicata e di tutte le sue sottocartelle... Ottenere la lista dei fila della cartella indicata non è un problema, ma ottenere anche quelli di tutte le sottocartelle mi sta dando qualche grattacapo.
In teoria, basterebbe realizzare un metodo ricorsivo ad hoc, ma a quanto pare il codice non è corretto: compila ed esegue, ma mi restituisce solo i file della cartella indicata, ignorando le sottocartelle. Qualche idea?
public String[] listSubDir(File dir) {
LinkedList<String> temp = new LinkedList<String>();
File[] list = dir.listFiles();
for (int i = 0; i < list.length; i++){
if (list[i].isDirectory())
this.listSubDir(list[i]);
else {
String[] split = list[i].getName().split("\\.");
String str = split[0];
if (split.length > 2)
for (int k = 1; k < split.length - 1; k++)
str += "." + split[k];
temp.add(str);
}
}
String[] temp1 = temp.toArray(new String[temp.size()]);
return temp1;
}
Sto provando a fare un piccolo applicativo Java che dovrebbe restituirmi un file di testo contenente la lista di tutti i file di una cartella indicata e di tutte le sue sottocartelle... Ottenere la lista dei fila della cartella indicata non è un problema, ma ottenere anche quelli di tutte le sottocartelle mi sta dando qualche grattacapo.
In teoria, basterebbe realizzare un metodo ricorsivo ad hoc, ma a quanto pare il codice non è corretto: compila ed esegue, ma mi restituisce solo i file della cartella indicata, ignorando le sottocartelle. Qualche idea?
public String[] listSubDir(File dir) {
LinkedList<String> temp = new LinkedList<String>();
File[] list = dir.listFiles();
for (int i = 0; i < list.length; i++){
if (list[i].isDirectory())
this.listSubDir(list[i]);
else {
String[] split = list[i].getName().split("\\.");
String str = split[0];
if (split.length > 2)
for (int k = 1; k < split.length - 1; k++)
str += "." + split[k];
temp.add(str);
}
}
String[] temp1 = temp.toArray(new String[temp.size()]);
return temp1;
}