如何获取我使用Intent选择的目录的路径并将其用作文件路径?

托马斯

单击按钮后,我想创建一个用于浏览文件和选择目录的Intent。然后,我想在共享首选项中存储此目录的路径。稍后,我想将此路径用作File对象的参数,因此,例如,我可以获得所选择目录的父目录,或列出其所有文件。问题是,我从Intent获得了这条路:

内容://com.android.externalstorage.documents/tree/primary%3AAndroid%2Fdata

我在这里阅读链接,并尝试使用光标将内容Uri转换为File Uri,但出现此错误:

java.lang.UnsupportedOperationException: Unsupported Uri content://com.android.externalstorage.documents/tree/primary%3AAndroid%2Fdata

是否因为“ Android”和“ data”文件夹之前的字符?尝试创建游标时,它总是失败。

这是我要实现的简单示例。我没有包含用于将Content Uri转换为File Uri的代码。我为此尝试了几乎所有代码,但没有结果。

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    button.setOnClickListener {
        val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
        startActivityForResult(intent, SELECT_DIRECTORY)
    }
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    if (resultCode == Activity.RESULT_OK) {
        if (requestCode == SELECT_DIRECTORY) {
            val path = data?.data
            // convert content Uri to File Uri ?
            // store path in shared preferences...
            // later use it in File File(storedPath)
        }
    }
}
托马斯

我试图在文件管理器应用程序中实现“默认文件夹”功能,并选择一个我想使用其他应用程序的目录,但这对我不起作用。但是感谢@greenapps,我意识到我可以在自己的应用程序中选择默认文件夹。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从文件路径或URL获取目录

如何从文件选择器获取完整路径目录

如何使用JFileChooser获取目录路径?

从文件路径获取文件目录路径

如何从文件的完整路径获取目录?

如何使用CMD从文件路径获取文件夹路径

如何在路径中“获取”文件并将其制表符完整?

如何从可绘制文件夹上的图像获取路径并将其设置为图像视图,位图?

我如何使用tkinter和PdFileReader从文件路径获取数据

JavaFX目录选择器-如何从目录获取路径?

如何使用php获取文件或文件夹的完整目录路径

尝试摆脱字符串的一部分(用作文件路径)以返回目录

如何获取svg文件并将其用作<svg>?

如何访问svg文件的路径数据并将其用作google-maps标记?

尝试从文件路径获取输入并将其传递给使用PyQt5的其他函数时出错

用户在输入类型文件中选择时如何获取文件的路径目录

如何获取当前工作目录(当前工作文件夹)名称而不是路径名称?

如何获取具有绝对路径的文件的InputStream并将其添加到StreamedContent对象,以便在ap:fileDownload中使用它?

通过文件路径获取目录的路径

如何制作文件副本并将其放置在从中复制的同一目录中?

如何使用tcl / tk浏览目录并将路径另存为文件中的变量

在每个子目录中创建一个文件,并将其路径写入其中

使用 find 查找目录并将其移动到不同的路径

如何获取文件路径?

保存 ImagePicker 文件路径并将其用作背景

如果我正在制作文件路径,哪个应该更快?

如何获取测试用例名称并将其用作文件名 NLog

使用路径从文件内部存储目录中的 zip 获取文件

我如何知道由 os.makedirs() 创建的文件的路径并将其存储在变量中以备后用?