01. september 2009 - 10:55
Der er
4 kommentarer og 1 løsning
Filbrowser i java
Hej. Jeg sidder og skal læse en biblioteksstruktur ind i java men bliver lidt i tvivl hvordan jeg skal gemme den. Hvad er mest optimalt, et hashmap? Andre ideer? Det skal ikke bare være en lang liste. Men en struktur hvor man kan se i hvilke foldere, filerne hører til. På forhånd tak for ideer og hjælp. :)
Annonceindlæg fra Computerworld it-jobbank
02. september 2009 - 14:05
#4
Så fik jeg prøvet det og det ser ud til at virke. nedenunder er koden som jeg afprøvede. Arne_v hvis du ligger et svar så får du pointene. Tak for hjælpen til begge. --- public class Entry { private String name; private boolean folder; private List<Entry> subDirectory; public Entry(){ } public Entry(boolean folder, String name, List<Entry> subDirectory){ this.folder = folder; this.name = name; this.subDirectory = subDirectory; } // getter & setter .... } ----------------- private Entry getDirectoryStructure() { File directory = new File("c:\\testfolder"); List<Entry> result = new ArrayList<Entry>(); File[] filesAndDirs = directory.listFiles(); List<File> filesDirs = Arrays.asList(filesAndDirs); for(File file : filesDirs) { Entry Entry = null; if (file.isDirectory()) { List<Entry> deeperList = getSubDirectory(file); Entry = new Entry(true, file.getName(), deeperList); } else { Entry = new Entry(false, file.getName(), null); } result.add(Entry); } Entry rootEntry = new Entry(true, directory.getName(), result); return rootEntry; } private List<Entry> getSubDirectory(File directory) { List<Entry> result = new ArrayList<Entry>(); File[] filesAndDirs = directory.listFiles(); List<File> filesDirs = Arrays.asList(filesAndDirs); for(File file : filesDirs) { Entry Entry = null; if (file.isDirectory()) { List<Entry> deeperList = getSubDirectory(file); result.addAll(deeperList); Entry = new Entry(true, file.getName(), deeperList); } else { Entry = new Entry(false, file.getName(), null); } result.add(Entry); } return result; }