【问题标题】:Retrieve correct file URI in Java [duplicate]在Java中检索正确的文件URI [重复]
【发布时间】:2015-04-06 07:04:26
【问题描述】:

java.net.URI 的 .toString 方法未正确编码本地文件 URL。

scala> new java.io.File("/tmp/d.jpg").toURI.toString
res0: String = file:/tmp/d.jpg

为什么不生成 URI?

file:///tmp/d.jpg

编辑 我在将文件传递到 Linux 上的 shell 时发现了这一点,最终执行了 convert (ImageMagick),它无法处理单斜杠版本 file:/tmp/d.jpg。它在我传递一个 http URI 时起作用,该 URI 由 java.net.URI 正确字符串化。我猜 convert 没有严格遵循 RFC。

【问题讨论】:

  • 我认为问题已在链接中得到解答 - 我可以承认 Jens,还是应该自己回答问题并接受?

标签: java scala url uri


【解决方案1】:

添加到原始帖子的链接回答了我的问题。

为了能够将 URI 传递给 shell(转换),我将这样做(注意,它是 Scala 代码): private def getSourceForShell(source: URI): String = { if (source.getScheme == "file") { "file://" + source.toString } else { source.toString } } 我猜这是转换的一种解决方法,它不支持单斜杠(无权限)URI 格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 2018-12-23
    相关资源
    最近更新 更多