Convert file: Uri to File in Android Convert file: Uri to File in Android android android

Convert file: Uri to File in Android


What you want is...

new File(uri.getPath());

... and not...

new File(uri.toString());

Note: uri.toString() returns a String in the format: "file:///mnt/sdcard/myPicture.jpg", whereas uri.getPath() returns a String in the format: "/mnt/sdcard/myPicture.jpg".


use

InputStream inputStream = getContentResolver().openInputStream(uri);    

directly and copy the file. Also see:

https://developer.android.com/guide/topics/providers/document-provider.html


After searching for a long time this is what worked for me:

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;    }