我想获取文件的路径以便读取它。Uri得到错误的文件路径
下面的代码当我点击按钮,我开始OnBrowse()
中与当前视图:
public void onBrowse(View view) {
Intent chooseFile;
Intent intent;
chooseFile = new Intent(Intent.ACTION_GET_CONTENT);
chooseFile.addCategory(Intent.CATEGORY_OPENABLE);
chooseFile.setType("*/*");
intent = Intent.createChooser(chooseFile, "Choose a file");
startActivityForResult(intent, ACTIVITY_CHOOSE_FILE);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) return;
String path = "";
if(requestCode == ACTIVITY_CHOOSE_FILE)
{
Uri uri = data.getData();
Log.d("Path", ""+uri);
File myFile = new File(uri.getPath());
myFile.getAbsolutePath();
loadFile(myFile.getAbsolutePath());
}
}
public String getRealPathFromURI(Uri contentUri) {
String [] proj = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(contentUri, proj, null, null,null);
if (cursor == null) return null;
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
野老一切正常,但myFile.getAbsolutePath()
给我以下路径:
/document/raw:/storage/emulated/0/Download/File.txt
当我觉得它它应该只返回storage/emulated/0/Download/File.txt
所以当我尝试读取文件时,它抛出了一个异常。
感谢
试试这个https://stackoverflow.com/a/41520090/1548824 – akhilesh0707
哦没有带发现后,将检查谢谢 – Bobby
你不需要'Uri'的路径,而是你需要'Uri's'InputStream',参见ContentResolver'关于如何获取它的文档 – pskink