В java8, используя Files.walk API, невозможно читать файлы из папки по абсолютному пути - PullRequest
1 голос
/ 16 июня 2019

Я пытаюсь прочитать список файлов, используя api Files.walk с соответствующим путем в java8, в то время как я получаю исключение java.nio.file.NoSuchFileException: \ src \ main \ resources \ eclipseconftemplates \ java, тот же API-интерфейс работаетс действительными путями

Получение исключения.

try (Stream<Path> paths = Files.walk(Paths.get("/src/main/resources/eclipseconftemplates/java"))) {
            paths
                .filter(Files::isRegularFile)
                .forEach(System.out::println);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 

отлично работает:

try (Stream<Path> paths = Files.walk(Paths.get("C:\\Users\\XXXX\\maven_project_demo\\antToMaven\\src\\main\\resources\\eclipseconftemplates\\java"))) {
            paths
                .filter(Files::isRegularFile)
                .forEach(System.out::println);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

Заранее спасибо за вашу помощь.

Ответы [ 2 ]

5 голосов
/ 16 июня 2019

В вашем каталоге не должно быть префикса /, иначе программа запустится в корне файловой системы.

try (Stream<Path> paths = Files.walk(Paths.get("src/main/resources/eclipseconftemplates/java"))) {
2 голосов
/ 16 июня 2019

Вы получаете сообщение об ошибке, поскольку система не может разрешить путь к файлу, на который вы ссылаетесь. Разделитель файлов зависит от системы. Это "/" в UNIX и "\" в Windows. Всегда используйте Свойства системы , если вы хотите работать независимо от платформы.

System.getProperty("file.separator");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...