Ich bin gerade dabei ein Programm zu schreiben, welches alle Files eines Verzeichnisses öffnen und nach einem String suchen soll, sowie Unterordner öffnen und deren Files. Gebe ich einen Ordner ohne Unterordner an funktioniert es einwandfrei, jedoch nicht wenn der Ornder unter Ordner hat, hierbei erscheint dann immer die Meldung: FileNotFoundError und dann der Link zu dem Ordner, dabei existiert er. Ich habe leider keine Ahnung warum es nicht funktioniert.
Hier der aktuelle Code;
Vielen Dank schon mal
Hier der aktuelle Code;
Java:
public class tech {
public static void main(String[] args) throws FileNotFoundException {
String verzName = "C:\\Users\\xyz\\Videos";
Scanner parse = new Scanner(System.in);
String searchp = parse.next();
HashMap files = getPaths(new File(verzName),
new ArrayList<File>(), searchp);
if(files == null) return;
System.out.print("Files that contain your parse\n" +files);
}
private static HashMap getPaths(File file, ArrayList<File> list, String string) throws FileNotFoundException {
HashMap dic = new HashMap();
if (file == null || list == null || !file.isDirectory())
return null;
File[] fileArr = file.listFiles();
for (File f : fileArr) {
if (f.isDirectory()) {
getPaths(f, list, string);
}
list.add(f);
}
for (File e : list) {
ArrayList<String> lines = new ArrayList<>();
Scanner scanner = new Scanner(e);
int counter = 0;
try {
while (scanner.hasNextLine()) {
counter++;
String a = scanner.nextLine();
if (a.contains(string)) {
String cint = Integer.toString(counter);
lines.add(cint);
if (!dic.containsKey(e)) {
dic.put(e, lines);
}
else {
dic.replace(e, lines);
}
}
}
}
catch(Exception d) {
d.printStackTrace();
}
}
Vielen Dank schon mal