B
bananenkasper
Gast
Hallo zusammen,
ich versuche ein verzeichnis rekursiv zu durchsuchen.
Klappt auch soweit.
Allerdigns ist die Performance erbärmlich.
Bisher habe ich es so gelöst:
Das ist bei grösseren Verzeichnissen schnell unbrauchbar langsam.
Gibt es Möglichkeiten, die Ausführung zu beschleunigen?
Währe für jeden Tipp dankbar!
ich versuche ein verzeichnis rekursiv zu durchsuchen.
Klappt auch soweit.
Allerdigns ist die Performance erbärmlich.
Bisher habe ich es so gelöst:
Code:
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.ExecutionException;
public class Test {
private final static FileFilter DIR_FILTER = new FileFilter() {
public boolean accept(File pathname) {
if (pathname.isDirectory())
return true;
return false;
}
};
private final List<File> dirList = new LinkedList<File>();
public static void main(String[] args) {
final String searchString = args[1];
final File searchDir = new File(args[0]);
dirList.add(searchDir);
while(dirList.size() != 0){
File file = dirList.remove(0);
processDir(file);
}
}
private void processDir(File searchDir) {
File[] childDirs = searchDir.listFiles(DIR_FILTER);
dirList.addAll(Arrays.asList(childDirs));
}
}
Das ist bei grösseren Verzeichnissen schnell unbrauchbar langsam.
Gibt es Möglichkeiten, die Ausführung zu beschleunigen?
Währe für jeden Tipp dankbar!
Zuletzt bearbeitet von einem Moderator: