我有一个URI,我想从这个URI创建一个文件:
fileUri = file:///mnt/sdcard/20120904_162830.png;
File fichero = new File(fileUri.toString();
这很好但是当我尝试创建使用或fichero.exist() = false
如何从此fileUri
创建文件?
解决方案:
fichero = new File(fileUri.getPath());//for camera
if (!fichero.exists()) {
fichero = new File(getRealPathFromURI(fileUri));//for gallery
}
public String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
@SuppressWarnings("deprecation")
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
答案 0 :(得分:1)
试试这个:
File fichero = new File(fileUri.getPath());
答案 1 :(得分:0)
File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
File output = new File(dir,"20120904_162830.png");
将此权限添加到清单...
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
编辑:
String filename= output.getAbsolutePath();
filename= str.subString(str.indexOf("/"),str.length());
答案 2 :(得分:0)
这是解决方案
fileUri = "file:///mnt/sdcard/20120904_162830.png";
URI fUri = new URI(fileUri);
File fichero = new File(fileUri.getPath());
仅当您未在fileUri
中提供任何网址时,此功能才有效