有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Windows中处理unix路径

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

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

我可以手动加载LinuxFileSystem吗?或者我应该改用commons-io解析器吗


共 (2) 个答案

  1. # 1 楼答案

    看起来@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

  2. # 2 楼答案

    Can I manually load up the LinuxFileSystem somehow?

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

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