Hallo,
ich habe folgendes Problem:
In einem Programm von mir will ich bei jedem Start die Festplatte nach Dateien namens "Setting.txt" durchsuchen und aus den Funden dann die Richtige heraussuchen, aus der weitere Einstellungen für das Programm entnommen werden können. Wenn sie nicht existiert, öffnet sich ein weiteres Fenster, in dem diese Datei erstellt und konfiguriert werden kann usw. Das tut aber nichts zur Sache.
Bis jetzt funktioniert alles wie es soll, aber die Dateisuche dauert sehr lang! Alleine einen Ordner mit ca. 1 GB Größe zu durchsuchen dauert ungefähr 3 Sekunden, wenn ich die komplette Festplatte durchsuchen lasse, zieht sich der Vorgang dann auf fast eine halbe Stunde, und das ist bei jedem Programmstart ja sehr nervig.
Und da ja z.B. die Standardsuche von Vista nur wenige Sekunden braucht um Dateien auf der Festplatte zu finden, wollte ich mal fragen, ob es da nicht eine schnellere Möglichkeit gibt, bzw. ob ich nicht komplett falsch an die Sache herangehe
Hier meine bisherige Methode zur Dateisuche:
mfg
ich habe folgendes Problem:
In einem Programm von mir will ich bei jedem Start die Festplatte nach Dateien namens "Setting.txt" durchsuchen und aus den Funden dann die Richtige heraussuchen, aus der weitere Einstellungen für das Programm entnommen werden können. Wenn sie nicht existiert, öffnet sich ein weiteres Fenster, in dem diese Datei erstellt und konfiguriert werden kann usw. Das tut aber nichts zur Sache.
Bis jetzt funktioniert alles wie es soll, aber die Dateisuche dauert sehr lang! Alleine einen Ordner mit ca. 1 GB Größe zu durchsuchen dauert ungefähr 3 Sekunden, wenn ich die komplette Festplatte durchsuchen lasse, zieht sich der Vorgang dann auf fast eine halbe Stunde, und das ist bei jedem Programmstart ja sehr nervig.
Und da ja z.B. die Standardsuche von Vista nur wenige Sekunden braucht um Dateien auf der Festplatte zu finden, wollte ich mal fragen, ob es da nicht eine schnellere Möglichkeit gibt, bzw. ob ich nicht komplett falsch an die Sache herangehe
Hier meine bisherige Methode zur Dateisuche:
Java:
public ArrayList<File> searchFile(File dir, String find) {
File[] files = dir.listFiles();
ArrayList<File> matches = new ArrayList<File> ();
if (files != null) {
for (int i = 0; i < files.length; i++) {
if (files[i].getName().equalsIgnoreCase(find)) {
matches.add(files[i]);
}
if (files[i].isDirectory()) {
matches.addAll(searchFile(files[i], find));
}
}
}
return matches;
}
mfg