在 Android 中,从包含 file:
类型的 android.net.Uri
对象转换为 File
对象的最简单方法是什么?
我尝试了以下方法,但它不起作用:
File file = new File(Environment.getExternalStorageDirectory(), "read.me");
Uri uri = Uri.fromFile(file);
File auxFile = new File(uri.toString());
assertEquals(file.getAbsolutePath(), auxFile.getAbsolutePath());
最佳答案
你想要的是……
new File(uri.getPath());
...而不是...
new File(uri.toString());
注意事项
- 对于一个名为
uri
的android.net.Uri
对象,其创建方式与 the question 中的完全相同,uri.toString()
返回格式为"file:///mnt/sdcard/myPicture.jpg"
的String
,而uri.getPath()
返回String
,格式为"/mnt/sdcard/myPicture.jpg"
。 - 我了解 Android 中的文件存储存在细微差别。我在这个答案中的目的是准确回答提问者的问题,而不是深入细微差别。
关于android - 转换文件 : Uri to File in Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2975197/