Java 奇怪的文件协议处理是怎么回事?我的意思是在 Windows 上,UNC 路径变成了 5 个斜杠,我明白为什么会这样,但是在 linux 上,绝对路径变成了file:/local/path/to/file
不应该有三个斜杠吗?我假设 Java 的作者不是无能的,那么有没有解释为什么这是可以接受的?
问问题
310 次
1 回答
3
让我们从URI 类的文档开始:
分层 URI 需要根据语法进行进一步解析
[方案
:
][//
权限][路径][?
查询][#
片段]
如您所见,权限是可选的。URI 规范第 3 节支持这一点:
方案和路径组件是必需的,但路径可能为空(无字符)。存在权限时,路径必须为空或以斜杠 ("/") 字符开头。当权限不存在时,路径不能以两个斜杠字符(“//”)开头。
file:
URI可以有一个权限分隔符 ,//
后面有一个有效的空权限,但它没有任何作用,所以省略它也没有什么坏处。它仍然是一个完全兼容的 URI。
于 2017-06-23T15:42:20.657 回答