如何从java.nio.path获取路径字符串?
用更多信息重写问题 我有一些代码使用相对路径创建一个如何从java.nio.path获取路径字符串?,java,file,nio,Java,File,Nio,用更多信息重写问题 我有一些代码使用相对路径创建一个路径对象,比如:路径。获取(“…”,“文件夹”)。解析(“文件名”)。稍后,我想从中获取路径字符串“.\folder\filename”(我在windows上,所以使用反斜杠)。当我使用手动编译或从Eclipse运行此代码时,效果很好 然而,当我使用Maven运行它时,它不再工作了。toString()方法返回[…,文件夹,文件名]而不是实际的路径字符串。使用path.normalize()没有帮助。使用path.toFile().getPat
路径
对象,比如:路径。获取(“…”,“文件夹”)。解析(“文件名”)
。稍后,我想从中获取路径字符串“.\folder\filename”(我在windows上,所以使用反斜杠)。当我使用手动编译或从Eclipse运行此代码时,效果很好
然而,当我使用Maven运行它时,它不再工作了。toString()
方法返回[…,文件夹,文件名]
而不是实际的路径字符串。使用path.normalize()
没有帮助。使用path.toFile().getPath()
确实会返回我想要的结果,但我觉得应该有一个解决方案,只使用nio.path
API。使用:
Paths.get(...).normalize().toString()
另一个解决办法是:
Paths.get(...).toAbsolutePath().toString()
但是,您会得到奇怪的结果:
path.get(“/tmp”,“foo”).toString()
在这里返回/tmp/foo
。您的文件系统是什么?这似乎不对。两个path.get(“path/to/file”).toString()
和path.get(“path”、“to”、“file”).toString()
都为我返回“path/to/file”
。对于path.get(“path/to”).resolve(“file”).toString()
,它返回“path/to/file”
。我可能错了,但对我来说都返回相同的字符串!!!对于path.get(“path”、“to”、“file”).getClass().getName()
,您看到了什么结果?也许您选择的是一个不可靠的文件系统实现。区别可能是我从一个路径开始(相对于工作目录):路径。get(“…”、“path/to”、“file”)
。我认为这与问题无关,但显然是。更新了问题,并提供了有关失败时间的更多信息。您确定这是您使用的java.nio.path吗?是的,我确定:)java.nio.file.path
,确切地说。