在Windows中处理unix路径

时间:2016-11-12 06:34:56

标签: java nio filepath

在Windows上运行时处理* ix文件路径字符串的最佳方法是什么?

如果我只使用Paths.get(),它会调用Filesystem.getDefault(),最终会像Windows路径一样处理它。解析似乎在我的测试中工作,但它们非常简陋,当然toString使用了错误的路径分隔符。

我能以某种方式手动加载LinuxFileSystem吗?或者我应该使用commons-io解析器吗?

2 个答案:

答案 0 :(得分:1)

  

我能以某种方式手动加载LinuxFileSystem吗?

我对此表示怀疑,因为一个JDK发行版面向Unix或Windows。我想到的唯一机会是你寻找一些UnixFileSystemProvider的开源发行版并导入你的应用程序的运行时。

但即使在这种情况下,我怀疑它会100%工作,因为FileSystemProvider类处理来自底层操作系统的低级细节 - 而不仅仅是路径分隔符,因此它有可能赢得'与Windows文件系统兼容。

答案 1 :(得分:0)

看起来@Little Santi对这个问题的评论实际上就是答案。如果我跑:

for (FileSystemProvider provider: FileSystemProvider.installedProviders()) {
  System.out.println(provider.getClass().getName());
}

我明白了:

sun.nio.fs.WindowsFileSystemProvider
com.sun.nio.zipfs.ZipFileSystemProvider

如果我正确解释这意味着我不能在Windows下使用LinuxFileSystem路径方法,而应该使用commons-io。