在Windows上运行时处理* ix文件路径字符串的最佳方法是什么?
如果我只使用Paths.get()
,它会调用Filesystem.getDefault()
,最终会像Windows路径一样处理它。解析似乎在我的测试中工作,但它们非常简陋,当然toString
使用了错误的路径分隔符。
我能以某种方式手动加载LinuxFileSystem吗?或者我应该使用commons-io
解析器吗?
答案 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。