java - 在 Java 中检索正确的文件 URI

标签 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),它无法处理单斜杠版本 file:/tmp/d.jpg。当我传递一个 http URI 时它会起作用,该 URI 由 java.net.URI 正确地 toStringed 。我猜convert并没有严格遵循RFC。

最佳答案

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

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

关于java - 在 Java 中检索正确的文件 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28360678/

相关文章:

php - 不确定 URL 是如何在 php 网站中构建的

java - 如何按照选择的顺序从 JList 获取项目?

java - 如何从 Play Framework 中的另一个模板调用一个模板?

javascript - 从 url 获取值

unit-testing - Nodejs 单元测试网址

scala - IntelliJ 12 : Showing Play 2. 1/项目导航器中的 Scala 编译错误?

Java - 在 JEditorPane 中设置选择的字体大小?

java - JSoup - 提取 div 的内容时出错

java - JMSXGroupId 的 RabbitMQ 解决方法

scala - 关于 this.type 的令人惊讶的等价和不等价