java如何选取本地文件,如何获取本地文件的正确URI?

TLDR版本:这两种形式的URI根据RFC 8089是正确的。 ~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~

示例代码突出了Path的toUri()和文件的toURI返回的值之间的差异()给定文件的方法。打印那些值我的Win10机器上显示:

path.toUri()=>文件:/// d:/NetBeansProjects/MiscTests/./

file.toUri()=>文件:/ d:/的NetBeansProjects/MiscTests /./

Linux上的结果是相似的:

path.toUri()=>文件:///home/johndoe/IdeaProjects/TestUri/./

file.toUri()=>文件:/家庭/输入johndoe/IdeaProjects/TestUri /./

因此,唯一的区别是单或三正斜杠以下 “文件:” 中的URI。

从你的链接,RFC 8089的附录B中证实,这两种形式都是有效的URI:

与空权限的本地文件传统的文件URI。 这是当今最常用的格式。例如:

* "file:///path/to/file"

ö本地文件与没有权限 字段 并以斜线“/”开始的绝对路径的最小表示。例如:

* "file:/path/to/file"

进一步确认这两个URI形式都是有效的是,要么可以在浏览器中输入显示目录的内容。不过,也有值得注意的几点:

勇敢是不会接受的URI的单斜线形式的唯一浏览器(通过File.toURI给出()的toString()。)。

所有的浏览器接受URI的三重斜线形式(如File.toPath()。toUri()。toString())给出的。

如果我使用单斜杠在浏览器的地址栏中输入URI,它将转换为三斜杠。奇怪的是,Chrome和Firefox都会在URI中接受任意数量的斜杠(例如file:/// D:/ NetBeansProjects/MiscTests /),并且仍然显示该目录。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部