无法从URI获取文件路径

时间:2015-07-23 15:01:28

标签: android android-intent android-file

我正在尝试打开一个让我选择文件的意图。我能够选择一个文件但是当我尝试使用Uri创建一个文件时,我得到了OnActivityResult方法,我得到的文件大小为0.我不认为我得到了正确的文件路径。

  File file = new File(Environment.getExternalStorageDirectory().getPath()+"/TESTAPP4");
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_GET_CONTENT);
        Uri data = Uri.fromFile(file);
        String type = "*/*";
        intent.setDataAndType(data, type);
        startActivityForResult(intent, 12);

onActivityResult:

         Uri u= data.getData();
         File file = new File( u.getpath);
         file.length() // give 0

1 个答案:

答案 0 :(得分:0)

public String getRealPathFromURI(Context context, Uri contentUri) {
  Cursor cursor = null;
  try { 
    String[] proj = { MediaStore.Images.Media.DATA };
    cursor = context.getContentResolver().query(contentUri,  proj, null, null, null);
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
  } finally {
    if (cursor != null) {
      cursor.close();
    }
  }
}

Get filename and path from URI from mediastore