为什么uri路径不适用于File



嗨,我正在使用以下意图挑选android中的任何文件:

        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.setType("*/*");
        startActivityForResult(intent, PICKFILE_REQUEST_CODE);

我正在获取所选文件的Uri&我也通过调用uri.getPath()方法来获取文件路径。在获得路径后,我正在使用file = new File(new URI(filePath));创建文件对象,但我正在获得IllegalArgumentException : URI is not absolute。为什么会这样?如何获得绝对路径?有没有其他选择可以使用Intent&然后是乌里?

在android调试器中,uri对象显示如下(来自下载):content://com.android.providers.downloads.documents/document/67

&uri.getPath()给我/document/67

返回的Uri可能具有与file://不同的方案,即它并不总是本地文件或所有设备应用程序可用的文件的URI。例如,它可能是content:// URI,并且它的路径与本地文件系统路径没有任何共同之处。解决它的公平方法是测试方案是否为file://,如果不是,则通过context.getContentResolver().openInputStream(uri)打开InputStream,然后将内容复制到本地临时文件。

相关内容

  • 没有找到相关文章

最新更新