Я просмотрел Recursively list files in Java, но это, похоже, не решает мою проблему. Я попытался реализовать его так, как показали ответы в этом вопросе, но моя программа по-прежнему не работает так, как я этого хочу. Он по-прежнему не «опускается» на уровень, если он находит каталог и отправляет этот новый путь каталога в качестве аргумента, чтобы проверить, существует ли файл.Поиск определенного файла с учетом каталога и имени файла, спуск по каталогу и отправка его пути
Я пытаюсь заставить свой класс FileFinder работать. Учитывая имя файла и каталог для начала поиска, я хочу найти и найти файл с именем файла.
Я создал своего рода тестовую директорию в /Users/Name/Documents/testing/
. В одном из 3-х каталогов под /Documents/testing/
есть файл под названием test.py. Но моя программа не найдет файл. Если я, тем не менее, даю методу соответствующий каталог, например /Documents/testing/correctDir/
, он находит и печатает файл и его путь.
Так что я думаю, что моя проблема в том, что когда я нахожу каталог, вызов fileFinder
не работает так, как должен. Я имею дело с «AbsolutePath» неправильно в этой строке?
Вот код:
import java.io.*;
public class FileFinder {
String fileFinder(String fileName, String root){
String pathToFile = "";
File rootDir = new File(root);
File[] files = rootDir.listFiles();
for(File f:files){
if(f.isDirectory()){
//System.out.println(f.getAbsolutePath());
fileFinder(fileName,f.getAbsolutePath());
}
else if(f.getName().equals(fileName)){
pathToFile = f.getAbsolutePath();
}
}
return pathToFile;
}
}
Возможный дубликат из [Рекурсивно перечислить файлы в Java] (http://stackoverflow.com/questions/2056221/recursively-list-files-in-java) – Prashant