但是我想要的路径是:
这种 Uri类型的
查阅资料找到如下方法
转Uri
Uri转绝对路径
绝对路径转Uri的那个方法 目前是图片文件的转换 转其他文件 只要把content后面的目录换成对应文件的归属目录就行了。。
近期在部分安卓手机中获取文件,发现部分安卓手机的uri路径中返回的不是 content://media/extenral/images/media/17766 这种常规类型的 地址而是返回的是content://media/extenral/images/media/raw:/storage/emulated/0/Download/my_file.pdf 类似这种的地址
这样在咱们常用的获取地址中就会报错了 java.lang.NumberFormatException' Exception
解决方法
修改isDownloadsDocument(uri) 中的方法按下述方法进行修改就完美解决了
方法1、用URLDecode解码就可以了。String code = "D:/%e5%ad%a6%e6%b5%b7/My%20Course/%e8%ae%a1%e7%ae%97%e4%b8%8e%e8%bd%af%e4%bb%b6%e5%b7%a5%e7%a8%8b/Java%20workspace/my Project/bin/"
try{
String src=URLDecoder.decode(code,"UTF-8")//注意编码和输入时一致
System.out.print(src)
}catch (UnsupportedEncodingException e){
e.printStackTrace()
}
======
显示:
D:/学海/My Course/计算与软件工程/Java workspace/my Project/bin/
方法2:URI有自己的getPath方法,直接返回的就是解码后的路径
比如System.out.print(url.getPath())
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)