【发布时间】:2023-01-26 15:31:46
【问题描述】:
在我的应用程序中,用户可以选择创建文件(文本文件)的位置。
这部分工作正常。
但是现在,我想打开一个外部“文件浏览器”应用程序,直接指向所选文件夹。
我知道的“文件浏览器”应用程序接受绝对路径作为输入(比如/storage/emulated/0/Documents/test_folder)
当用户选择一个文件夹(使用 Intent.ACTION_OPEN_DOCUMENT_TREE)时,我得到一个内容 uri(如 content://com.android.externalstorage.documents/tree/home%3Atest_folder)
另一个使用外部 SD 卡的例子:
- uri:
content://com.android.externalstorage.documents/tree/3877-DB74%3ADocuments%2Ftest_folder - 预期路径:
/storage/3877-DB74/Documents/test_folder
uri 指向一个文件夹,而不是一个文件,所以我不能使用像 openInputStream 这样的东西
我努力了 :
File f = new File(uri.getPath());
String path = f.getAbsolutePath();
但它给出:/tree/home:test_folder 或 /tree/3877-DB74:Documents/test_folder 如果在 SD 卡上
我怎样才能得到真正的绝对路径?
【问题讨论】:
标签: android uri absolute-path documentfile