Как получить строку пути из java.nio.Path?
Переписанный вопрос с дополнительной информацией
У меня есть код, который создает объект Path
, используя относительные пути, например: Paths.get("..", "folder").resolve("filename")
. Позже я хочу получить из него строку пути "..\folder\filename" (я на окнах, поэтому обратная косая черта). Когда я запускаю этот код с помощью ручной компиляции или из Eclipse, это отлично работает.
Однако, когда я запускаю его с помощью Maven, он больше не работает. Метод toString()
возвращает [.., folder, filename]
вместо фактической строки пути. Использование path.normalize()
не помогает. Использование path.toFile().getPath()
возвращает то, что я ищу, но я считаю, что должно быть решение, использующее только API nio.path
.
Ответы
Ответ 1
Использование:
Paths.get(...).normalize().toString()
Еще одно решение:
Paths.get(...).toAbsolutePath().toString()
Однако вы получаете странные результаты: Paths.get("/tmp", "foo").toString()
возвращает /tmp/foo
здесь. Какая у вас файловая система?