【发布时间】:2019-10-16 20:40:42
【问题描述】:
我正在尝试将所选文件(不限于图像,它可以是任何文件)从文件选择器意图放入 zip 文件。我需要完整的文件路径来执行此操作,但意图仅提供 uri 路径。
- 我尝试过 .getPath() 但这并没有给出文件的真实路径
- 我试过 getRealPathFromRealURI:android get real path by Uri.getPath()
- 我试过 File file = new File(), file.getPath()
这是我的代码:
public void onActivityResult(int requestCode, int resultCode, Intent result){
if(requestCode == 111) {
if(null != result) { // checking empty selection
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
if(null != result.getClipData()) { // checking multiple selection or not
for(int i = 0; i < result.getClipData().getItemCount(); i++) {
String uri = result.getClipData().getItemAt(i).getUri().getPath();
uriList.add(uri);
Log.d("PATH: ",uri);
}
confirmationDialog();
} else {
String uri = result.getData().getPath();
uriList.add(uri);
Log.d("PATH: ",uri);
confirmationDialog();
}
}else{Toast.makeText(getApplicationContext(),
"An error has occured: API level requirements not met",Toast.LENGTH_SHORT).show();};
}
}
}
它应该给出真实的路径,例如:“/sdcard/filename.example”
相反,它给了我:“/document/9016-4ef8:filename.example”
【问题讨论】:
-
完整的
file path需要什么? -
停止文件未找到异常。
-
试试
file.getAbsoultePath() -
result.getData() 将为您提供 URI 本身(即 content://)。