Created
November 1, 2019 10:07
-
-
Save samuelb/8175f36fc5dd2fffe27819141976bf14 to your computer and use it in GitHub Desktop.
Recursive search a file with Java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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