由于Path.resolve
不接受字符串数组,因此可以传递包含多个路径组件的相对路径,例如"foo/bar/baz"
。
我的问题是
如果这种相对路径中的正斜杠在平台上按预期工作?
我在这里看到了一些答案,声称Java将正斜杠视为"通用分隔符",而不是支持它们的引用。
答案 0 :(得分:2)
/
应该是当今所有主要平台上的有效路径分隔符。例如,请参阅File.separator vs Slash in Paths(也许它甚至是重复的?)
如果你是迂腐类型,你可以使用FileSystem.getSeparator
。
请注意,您也可以
root.resolve(Paths.get("foo", "bar", "baz"));
答案 1 :(得分:1)
没有。 /
对象中的典型Path
称为名称分隔符。它在FileSystem
对象中定义,Path
是从该对象创建的。
您可以使用FileSystem#getSeparator()
检索它。
返回名称分隔符,表示为字符串。
名称分隔符用于分隔路径字符串中的名称。一个 实现可能支持多个名称分隔符,在这种情况下 方法返回特定于实现的默认名称分隔符。这个 通过调用创建路径字符串时使用分隔符
toString()
方法。对于默认提供程序,此方法返回相同的内容 分隔符为
java.io.File.separator
。
您可以使用Path#getFileSystem()
检索Path
的{{1}}。
据我所知,所有典型的文件系统都会使用FileSystem
作为分隔符,但您可以编写自己的/
实现,而不是。{/ p>
答案 2 :(得分:0)
您可以先FileSystem.getPath("foo", "bar", "baz")
获取Path
,而不是将String
发送到Path.resolve()
,您可以使用接受Path
的重载版本。