在Java中检索正确的文件URI

时间:2015-02-06 07:30:21

标签: java scala url uri

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),它无法处理单斜杠版本,文件:/tmp/d.jpg。当我传递一个http URI时,它可以工作,这是由java.net.URI正确地引导。我猜转换不严格遵循RFC。

1 个答案:

答案 0 :(得分:1)

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

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