У меня есть папка с тремя файлами и 2 подпапками.Я только пытаюсь прочитать путь, включая имена файлов, в виде строки из этой корневой папки, однако единственное условие - я хочу исключить другие каталоги, расположенные в той же папке.
Структура папки:
Folder A
|
|
DirectoryA
fileA.xlsx, fileB.xlsx
Что я ожидаю
Все, что я хочу, это сохранить путь к файлу A.xlsx и FileB.xlsx в виде строки в списке, т.е.
[FolderA/fileA.xlsx, FolderA/fileB.xlsx]
Мой вывод:
Мой вывод также включает в себя содержимое файла из подкаталога, как показано ниже, который я не хочу.
[FolderA/DirectoryA/somefile.txt, FolderA/fileA.xlsx, FolderA/fileB.xlsx]
То, что я пытался
public List<String> getAllExcelFilesList() throws IOException {
excelFilesList = new ArrayList<String>();
excelFilesList = Files.walk(Paths.get(path_to_FolderA))
.filter(p -> p.getFileName().toString().startsWith("file"))
.filter(Files::isRegularFile)
.map(Path::toString)
.collect(Collectors.toList());
LOG.info("all files saved to list for extraction");
return excelFilesList;
Я также попробовал следующий ответ здесь Files.walk (), рассчитать общий размер , но не смог сделатьмоя программа для работы.может быть, я упускаю что-то очень незначительное.
РЕДАКТИРОВАТЬ:
с точки зрения производительности лучше, если программа не просматривает каждый элемент внутри подпапки, потому чтов будущем эти подкаталоги могут содержать более 1000 файлов.