gpt4 book ai didi

java - 从内容 URI 获取目录路径

转载 作者:太空狗 更新时间:2023-10-29 14:05:11 26 4
gpt4 key购买 nike

我正在使用 SDK 的 ACTION_OPEN_DOCUMENT_TREE Intent 让用户选择一个目录。这是代码:

private static final int REQUEST_PICK_FOLDER = 1;

// …

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_add_folder: {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
startActivityForResult(intent, REQUEST_PICK_FOLDER);
return true;

default:
return super.onOptionsItemSelected(item);
}
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_PICK_FOLDER && resultCode == Activity.RESULT_OK) {
addFolder(data.getData());
}
}

private void addFolder(Uri uri) {
Uri docUri = DocumentsContract.buildDocumentUriUsingTree(uri, DocumentsContract.getTreeDocumentId(uri));
Log.d(TAG, "Folder added: " + docUri.toString());
}

我有一个 URI(可能)指向我刚刚选择的文件夹。这是一个示例输出:已添加文件夹:content://com.android.externalstorage.documents/tree/FF30-E80D%3AImages/document/FF30-E80D%3AImages

现在,我需要获取绝对路径,在本例中为 /storage/sdcard1/Images。我在 aFileChooser 中找到了一些代码这似乎可行,但不适用于我的主要用例 SD 卡。

我可能会在%3A上拆分URI,如果前面的部分是“主要的”,则使用第一个外部存储路径,如果是别的,则使用第二个,但感觉错了……可能有更确定的方法来实现这一点?

编辑:这里有一些背景知识。我不需要管理文件的路径。但是如何将其呈现给用户呢?我绝对不能给他看 content://com.android.externalstorage.documents/tree/FF30-E80D%3AImages/document/FF30-E80D%3AImages,这太可怕了。

最佳答案

Now, I need to get the absolute path, something translating in this case to /storage/sdcard1/Images.

那是不可能的。 Uri 根本不需要指向文件,更不用说您可以访问的文件了。

使用 ContentResolveropenInputStream() 获取内容的 InputStream 并以这种方式读取它。这与您处理 Web 服务器 URL 的方式没有明显不同(使用 HttpUrlConnection 获取网页或其他内容上的 InputStream)。

But how to present this to the user?

我不知道“这个”是什么。然而,you can get the suggested display name associated with the content .

关于java - 从内容 URI 获取目录路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32993476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com