【问题标题】:How to construct a Path "with zero elements"?如何构建“零元素”路径?
【发布时间】:2018-08-29 06:09:37
【问题描述】:

我即将编写一个自定义 FileVisitor 的测试,它需要路径的文件名。

Path's getFileName的文档写着

返回: 表示文件或目录名称的路径,如果此路径包含零个元素,则为 null

除了使用模拟 - 我尽量避免 - 我如何构造一个零元素的路径?

  • Paths.get("") - 需要一个非空参数,空字符串是一个元素
  • new File("").toPath() - 还需要一个非空参数,空字符串也是一个元素
  • 类似 Paths.get(".") 或 Paths.get("./") 的任何东西也有非零元素

对于所有这些,文件名永远不会为空。

这可能是 Java 中 WindowsFileSystem 实现的一种行为。 有谁知道 FileSystem 的其他实现是否有不同的行为并且实际上有可能 getFileName() 返回 null?

【问题讨论】:

    标签: java file nio


    【解决方案1】:

    (至少在 OSX 上)java.nio.file.Paths.get('/') 会产生这样一个零元素 sun.nio.fs.UnixPath

    【讨论】:

    • omg - 惊喜,惊喜 - 在 Windows 上实际上是一样的,我之前没有检查它,因为我没想到它的行为与 './' 不同......就是这样,谢谢!
    猜你喜欢
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 2023-03-25
    • 2018-12-16
    相关资源
    最近更新 更多