java使用intent选择要在安卓中读取的文件
使用意图选择要在安卓中读取的文件 我使用intent获取我选择的文件路径,如下所示:
Intent inputFile = new Intent(Intent.ACTION_PICK);
inputFile.setType("*/*");
inputFile.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(inputFile.createChooser(inputFile, "Select csv"),1010);
但是接收到的路径不使用FileInputStream来读取它
例如:通过intent接收的路径是:/document/primary:File。csv
读取文件所需的路径是:/storage/emulated/0/file。csv
# 1 楼答案
ACTION_PICK
不拾取文件。它挑选内容。大多数时候,您都会得到一个带有content
方案的Uri
,并且不要求这是一个文件还要注意的是}的回报
ACTION_PICK
不使用MIME类型,并且需要一个Uri
指向从何处拾取。如果您想按MIME类型进行选择,或者选择任何内容,ACTION_GET_CONTENT
或ACTION_OPEN_DOCUMENT
是更好的选择。这些也会给你一个content
{如果需要文件,请执行以下任一操作:
不要使用
Intent
,而是使用a file-chooser library正如greenapps建议的那样,使用
ContentResolver
和openInputStream()
获取内容的InputStream
,然后将该内容写入您控制的某个文件(例如,将字节复制到FileOutputStream
)或者,直接使用
InputStream