【问题标题】:Is there a cleaner way to represent a parent path from a filesystem URL?有没有更简洁的方法来表示来自文件系统 URL 的父路径?
【发布时间】:2016-10-23 21:46:34
【问题描述】:

我有一个源路径,作为文件系统 URL 接收,我想从中解析为上述两个父级的绝对路径;需要作为Path 对象的最终类型。为此,我必须将其转换为URI,然后转换为Path,然后调用getParent() 两次。

是否有更简洁的方法来执行此操作,以便我可以使用相对字符串 ../..URLURIPath 执行一些转换?我一直发现多次调用getParent() 来横穿路径比提供../ 等的相对路径更不直观。

// Example file system path as a URL
URL u = new URL("file:///a/b/c");

// Must convert to URI and then call 'getParent()' twice
Path p = Paths.get(u.toURI()).getParent().getParent();

【问题讨论】:

  • 老实说,这是我能想到的最好的方法。

标签: java url path filesystems uri


【解决方案1】:

如果您在其他任何地方都不需要 URL 变量,那么您可以像这样跳过转换: p = Paths.get(new URI("file:///a/b/c")).getParent().getParent();

现在,下一部分可能看起来比它需要的更复杂,但如果您只需要文件夹名称,则可以使用 .getName(0) 而不是两个 .getParent()。但是,打印出来的时候不包括根目录,可能不能满足你的需要。

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 2022-06-14
    • 2015-12-14
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多