在安卓系统中,从file: android.net.Uri转换为File最简单的方法是什么?
尝试了以下方法,但不起作用:
final File file = new File(Environment.getExternalStorageDirectory(), "read.me");
Uri uri = Uri.fromFile(file);
File auxFile = new File(uri.toString());
assertEquals(file.getAbsolutePath(), auxFile.getAbsolutePath());发布于 2011-12-04 03:23:22
你想要的是。
new File(uri.getPath());..。而不是..。
new File(uri.toString());注意: uri.toString()返回格式为:"file:///mnt/sdcard/myPicture.jpg"的字符串,而uri.getPath()返回格式为:"/mnt/sdcard/myPicture.jpg"的字符串。
发布于 2016-07-25 21:08:30
使用
InputStream inputStream = getContentResolver().openInputStream(uri); 然后直接复制文件。另请参阅:
https://developer.android.com/guide/topics/providers/document-provider.html
发布于 2013-05-13 03:17:23
在寻找了很长一段时间后,这对我来说是有效的:
File file = new File(getPath(uri));
public String getPath(Uri uri)
{
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
if (cursor == null) return null;
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String s=cursor.getString(column_index);
cursor.close();
return s;
}https://stackoverflow.com/questions/2975197
复制相似问题