Как получить полный системный путь к каталогу (не к файлу) при загрузке Spring с Java 8 - PullRequest
0 голосов
/ 31 января 2020

Я кодирую в Spring Boot 1.5 с Java 8 У меня есть каталог по этому пути:

  C:\Users\me\IdeaProjects\MyApp\server\src\main\resources\static\documents\1\folder_a23

Я не знаю, как я могу получить с помощью функции Java этот путь как Строка / Файл / Путь / Поток. Есть ли способ получить этот путь в результате поиска "/ folder_a23"? Большое спасибо за каждый ответ!

1 Ответ

2 голосов
/ 31 января 2020

Файловый объект обрабатывает все, что вы можете сделать с файлом в файловой системе. Несмотря на то, что имя не соответствует действительности, объект File является абстрактным представлением имен файлов каталога ИЛИ.

Посмотрите на #getAbsolutePath ()

File file = new File(".....");
String absolutePath = file.getAbsolutePath();

Это абсолютный путь к файлу.

Если строка, использованная для создания объекта File, указывает на каталог, вы можете получить содержимое этого каталога с помощью .listFiles();

. Это позволяет вам чтобы l oop через содержимое каталога и выполнить необходимые проверки.

file = new File("c:/test");
File[] paths = f.listFiles();
for(File path: paths) {
    // perform your checks here
}

Эта функция не является рекурсивной по своей природе. Если вы хотите спуститься в подкаталоги, вам нужно будет написать это самостоятельно.

Однако это предполагает, что вы действительно работаете с файлами. Если вы упаковываете свою программу в файл .jar (или .war) и запускаете ее оттуда, они не будут являться файлами в файловой системе, поскольку файлы .jar являются архивами java.

...