为同一文件返回Android不同的路径

时间:2015-11-27 21:22:02

标签: android file path

在我的代码中,您可以导入或导出csv文件。导出函数运行良好,为了创建文件,我将其用于路径:

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)

它返回以下路径: /storage/emulated/0/Download/File.CSV

在我的导入功能中,我使用createchooser获取文件资源管理器来查找要导入的文件。如果我选择相同的文件并使用以下代码请求路径:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
        case REQUEST_FILE_CODE:
            if (resultCode == RESULT_OK) {
                Uri uriFile = data.getData();
                Log.v("testimport", uriFile.getPath());
                File fileToImport = new File(uriFile.getPath());
                BufferedReader reader = new BufferedReader(new FileReader(fileToImport));

我通过以下路径收到文件未找到错误: /document/primary:Download/StudyMemory/File.csv

为什么我会获得两条不同的路径?如何从文件浏览器获取uri的绝对路径? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

第一个路径是文件系统路径。第二个是内容提供者路径。

当您想要阅读文件时,最好打开一个输入流,如

$con->prepare("SELECT*FROM quiz WHERE level IN (1,2,3,4,5.....10) limit 0,10");

并为您的读者使用该流。