Criei uma rotina pra você.
Vê se serve!
Atenciosamente,
Eduardo Rodrigues de Oliveira
import java.io.File;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class ListingPackages {
private Map files = null;
public static void main(String[] args) {
ListingPackages lp = new ListingPackages();
lp.printPathFileList("C:\\MyDocs\\workspace\\MyProject\\src");
}
public void printPathFileList(String initialPath) {
File file = new File(initialPath);
generatePathFileList("", file);
if (files != null) {
Iterator it = files.keySet().iterator();
while (it.hasNext()) {
String folderName = (String) it.next();
System.out.println("Listing directory [" + folderName + "]");
System.out.println("======================================");
Iterator fileNamesIt = ((FileList)
files.get(folderName)).getFilesNames().iterator();
while (fileNamesIt.hasNext()) {
String fileName = (String) fileNamesIt.next();
System.out.println("--> " + fileName);
}
System.out.println("");
}
}
}
private void generatePathFileList(String currentFolder, File file) {
String[] f = file.list();
for (int x = 0; x < f.length; x++) {
File vfile = new File(file.getAbsolutePath() + "/" + f[x]);
if (vfile.isDirectory()) {
generatePathFileList((currentFolder.equals("") ? "" :
currentFolder.concat(".")) + f[x], vfile);
} else {
// is file
if (files == null) {
files = new TreeMap();
}
if (files.get(currentFolder) != null) {
((FileList) files.get(currentFolder)).addFileName(f[x]);
} else {
files.put(currentFolder, new FileList(f[x]));
}
}
}
}
}
class FileList {
private Set filesNames = new HashSet();
public FileList(String fileName) {
filesNames.add(fileName);
}
public void addFileName(String fileName) {
filesNames.add(fileName);
}
public Set getFilesNames() {
return filesNames;
}
}