从文件资源管理器中选择的.txt文件的真实路径我正在开发一个应用程序,在这个应用程序中,我希望能够在.txt文件上从应用程序导出和导入一些数据。应用程序的最小API为21。出口部分运行良好,但我对进口部分有困难。我打开文件资源管理器:butImportPatient.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_OPEN_DOCUMENT);
intent.setType("*/*");
startActivityForResult(intent, IMPORTPATIENT_ACTIVITY_REQUEST_CODE);
}});这看起来很管用。但是我的onActivityResult没有工作,我没有找到如何从URI中获取文件。现在,这是我的代码:@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == IMPORTPATIENT_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK) {
File file = new File(data.getData().getPath()) ;
String path = file.getAbsolutePath() ;
StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(path));
String line;
while ((line = br.readLine()) != null) {
text.append(line);
text.append("\n");
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
AlertDialog.Builder builder = new AlertDialog.Builder(this) ;
builder.setMessage(path)
.show() ;
}
}这是我在这里看到的多个帖子的组合,但似乎都没有效果。我知道这条路:/document/home:List.txt它创建FileNotFoundException。如何获得文件的真正路径?
1 回答

江户川乱折腾
TA贡献1851条经验 获得超5个赞
我没有找到如何从URI中获取文件。
ACTION_OPEN_DOCUMENT
ACTION_GET_CONTENT
Uri
外部存储的本地文件 另一个应用程序内部存储的本地文件 可移动存储的本地文件 加密并需要动态解密的本地文件。 中保存的字节流。 BLOB
数据库中的列 一段需要先由另一应用程序下载的内容 .等等
如何获得文件的真正路径?
ACTION_OPEN_DOCUMENT
ACTION_GET_CONTENT
ACTION_GET_CONTENT
Uri
file
getPath()
ContentResolver
openInputStream()
添加回答
举报
0/150
提交
取消