我有一个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);
}
android.util.Log.v("FILE", "-->["+fichero.getAbsolutePath()+"]");
时会发生什么?是否打印出正确的路径?像@gtumca-MAC指出的那样,您是否拥有WRITE_EXTERNAL_STORAGE
权限?文件实际上是否存在? - Femi