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 /),并且仍然显示该目录。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
