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 /),并且仍然显示该目录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值