Skip to content

Instantly share code, notes, and snippets.

@samuelb
Created November 1, 2019 10:07
Show Gist options
  • Save samuelb/8175f36fc5dd2fffe27819141976bf14 to your computer and use it in GitHub Desktop.
Save samuelb/8175f36fc5dd2fffe27819141976bf14 to your computer and use it in GitHub Desktop.
Recursive search a file with Java
import java.io.File;
import java.util.LinkedList;
import java.util.List;
public class SearchFile {
public static void main(String[] args) {
// Liste aller Funde
LinkedList<String> results = new LinkedList<>();
search("C:\\", "SearchFile.java", results);
// Funde anzeigen
for (String result: results) {
System.out.println();
System.out.println();
System.out.println("Found:" + result);
}
}
public static void search(String startingpoing, String search, List<String> results) {
System.out.println("Searching in " + startingpoing);
File directory = new File(startingpoing);
File[] list = directory.listFiles();
// leeres Verzeichniss
if (list == null) {
return;
}
for (File f: list) {
// Wenn wir was gedunden haben, das wir suchen, dann fuege es zur Liste results hinzu
if (f.getName().equals(search)) {
results.add(f.getAbsolutePath());
System.out.println("Found " + f.getAbsolutePath());
}
// Wenn wir ein Verzeichniss sehen, dann rufen wir diese Funktion wieder mit diesem Verzeichnis auf.
// ==> Die Rekursion
if (f.isDirectory()) {
search(f.getAbsolutePath(), search, results);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment