How to get the path string from a java.nio.Path?

Jorn picture Jorn · Jul 9, 2013 · Viewed 49.4k times · Source

Rewrote question with more info

I have some code that creates a Path object using relative paths, like this: Paths.get("..", "folder").resolve("filename"). Later, I want to get the path string "..\folder\filename" from it (I'm on windows, so backslashes). When I run this code using manual compile or from Eclipse, this works fine.

However, when I run it using Maven, it doesn't work any more. The toString() method returns [.., folder, filename] instead of an actual path string. Using path.normalize() doesn't help. Using path.toFile().getPath() does return what I'm looking for, but I feel there should be a solution using just the nio.path API.

Answer

fge picture fge · Jul 9, 2013

Use:

Paths.get(...).normalize().toString()

Another solution woul be:

Paths.get(...).toAbsolutePath().toString()

However, you get strange results: Paths.get("/tmp", "foo").toString() returns /tmp/foo here. What is your filesystem?