3

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

3 に答える 3

1

これを試して:

File fichero = new File(fileUri.getPath());
于 2012-09-04T14:37:05.777 に答える
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());
于 2012-09-04T14:34:54.147 に答える