如何从Android中的URI路径获取文件路径

时间:2018-06-27 16:48:25

标签: android image-processing

给出URI:

content://com.app.exam.provider/files/image/a590d119-f234-482e-9218-1d89f9829a8b.jpg

我正在滑行加载,正在工作。但我还需要访问文件才能上传图像。

2 个答案:

答案 0 :(得分:0)

用于从可用的uri获取文件路径;使用这个:-

String file_path = yourUri.uri.getpath();

还要从此uri获取文件对象:-

File file_obj = new File(new URI(file_path));

答案 1 :(得分:0)

我正在使用此代码从图像URI中获取文件名。

/**
 *
 * @param image
 * @return
 */
private String getImageFilename(Uri image) {
    if (image != null) {
        String path = getRealPathFromURI(this.context(), image);
        if (path != null) {
            return path.substring(path.lastIndexOf("/") + 1);
        } else {
            return null;
        }
    } else {
        return null;
    }
}

/**
 * Gets the file path from a given URI.
 * @param context
 * @param contentUri
 * @return
 */
private String getRealPathFromURI(Context context, Uri contentUri) {
    Cursor cursor = null;
    try {
        if (contentUri != null) {
            String[] tempArray = {MediaStore.Images.Media.DATA};
            cursor = context.getContentResolver().query(contentUri, tempArray, null, null, null);
            if (cursor != null) {
                int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                cursor.moveToFirst();
                return cursor.getString(column_index);
            } else {
                return null;
            }
        } else {
            return null;
        }
    } catch (Exception e) {
        printLogMessage(e);
        return null;
    } finally {
        if (cursor != null) {
            cursor.close();
        }
    }
}

如果您遇到这种情况,请告诉我。