【发布时间】:2016-11-12 06:34:56
【问题描述】:
在 Windows 上运行时处理 *ix 文件路径字符串的最佳方式是什么?
如果我只使用Paths.get(),它会调用Filesystem.getDefault(),最终会像Windows 路径一样处理它。解析似乎在我的测试中有效,但它们非常初级,当然toString 使用了错误的路径分隔符。
我可以以某种方式手动加载 LinuxFileSystem 吗?还是应该改用commons-io 解析器?
【问题讨论】:
-
我相信自 Windows 2000 以来的所有 Windows 系统都在其 API 中接受
/和'\'作为文件分隔符。所以很可能你不需要做任何事情,只要 Windows 上的所有东西都在同一个驱动器上。如果这不起作用,请举例说明什么不起作用以及您想要完成什么。 -
就像我说的它在我的基本测试中解析,但输出使用了错误的路径分隔符。我怀疑 Windows 解析器可能存在一些反斜杠问题,这些反斜杠在 *ix 路径名中是合法的。
-
我对此表示怀疑,因为一个 JDK 发行版要么面向 Unix,要么面向 Windows。我想到的唯一机会是您寻找一些 UnixFileSystemProvider 的开源发行版并导入应用程序的运行时。即使在这种情况下,我也有疑问,因为 UnixFileSystemProvider 处理来自底层操作系统的低级细节——而不仅仅是路径分隔符。
-
@LittleSanti:答案是你的权利。想要积分请领取!
-
@Downvoter:为什么要投反对票?你不明白什么?