Paths.get-指定平台?

时间:2019-01-09 22:51:26

标签: java scala path

我正在开发同时在Mac和Windows上开发的应用程序。我们正在生成一些文件路径,并希望所有生成的路径都具有正斜杠的UNIX风格。在Windows计算机上调用Paths.get(...)会产生带有反斜杠的路径,但是我希望它产生带有正斜杠的路径。

我找不到有关“设置”或指定要使用的路径分隔符的文档。

1 个答案:

答案 0 :(得分:3)

我也在一段时间前也尝试找到它,但这是不可能的。这是Paths.get(...)

中的静态方法
java.nio.file.FileSystems#getDefault

返回静态最终字段

static final FileSystem defaultFileSystem = defaultFileSystem();

java.nio.file.FileSystems.DefaultFileSystemHolder#defaultFileSystem检测到您的文件系统。

但是在FileSystem实例中,斜杠的类型是硬编码的: https://github.com/frohoff/jdk8u-jdk/blob/master/src/windows/classes/sun/nio/fs/WindowsFileSystem.java#L249

所以我认为对您来说最简单的方法是使用类似https://docs.oracle.com/javase/8/docs/api/java/util/StringJoiner.html