【问题标题】:get absolute path from a uri pointing to a folder从指向文件夹的uri获取绝对路径
【发布时间】: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


    【解决方案1】:

    所以基本上你想从 uri 获取文件路径

    你试试这个代码

    https://gist.github.com/pratikbutani/eb56f6f9f7013e31d8bfea9effbd4251

    【讨论】:

      猜你喜欢
      • 2014-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-17
      • 1970-01-01
      • 2015-09-09
      • 2011-08-30
      • 1970-01-01
      相关资源
      最近更新 更多