2013-02-28 164 views
1

我有两种类型的文件路径,一种是从我的sqlite数据库获得的,另一种是我从本地派生的。将以“content //:”或“/ data/..”开头的路径转换为URI

来自db的格式为“content:// mnt/sdcard/data/download/image1” 而本地的是“/data/data/com.mytestapp/files/image1.png “

我需要将两者都转换为URI而不知道我得到了哪一个。有没有办法做到这一点?

从试验和错误看来,Uri.parse不能在第二种类型上工作,因为它不会将前缀file:///添加到它。

,因为它,因为它成为文件URI.fromFile不会对第一类工作:///内容:/.....etc

任何帮助吗? 谢谢

+0

您可以将“file:///”添加到本地路径吗? – 2013-02-28 01:58:47

+0

我使用上下文获取路径。 GetFilesDir,所以它没有文件:/// – Snake 2013-02-28 02:34:57

+1

我想我可以使用字符串操作来添加它,但它看起来像一个额外的开销 – Snake 2013-02-28 02:36:03

回答

2
File file = new File(path); 
if(file.exists()) { 
    return Uri.fromFile(file); 
} 
else { 
    return Uri.parse(path); 
}