簡體   English   中英

使用Intent.ACTION_OPEN_DOCUMENT_TREE將文件寫入目錄

[英]Write file to directory using Intent.ACTION_OPEN_DOCUMENT_TREE

使用Intent.ACTION_OPEN_DOCUMENT_TREE的FileChooser,我希望能夠在用戶選擇的位置寫入文件。 由於文件選擇器返回一個Tree URI,因此我使用了一個實用工具類,特別是方法FileUtil.getFullPathFromTreeUri ,該類取自該問題 ,將該URI轉換為可用的android目錄URI。

例如: content://com.android.externalstorage.documents/tree/0A17-1D03%3ATest

轉換為此: /storage/0A17-1D03/Test

這是我到目前為止的代碼:

@Override
public void onClick(View v) {
    Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
    i.addCategory(Intent.CATEGORY_DEFAULT);
    startActivityForResult(Intent.createChooser(i, "Choose a directory"), FILE_CHOOSER_REQUEST_CODE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
        case FILE_CHOOSER_REQUEST_CODE:
            if (data != null) {
                Log.i("URI", FileUtil.getFullPathFromTreeUri(data.getData(), getActivity()));
                dismiss();
            }
            break;
    }
}

如何在FileUtil.getFullPathFromTreeUri返回的位置寫入文件? (例如: /storage/0A17-1D03/Test

錯誤的方法。

消除該愚蠢的函數getFullPathFromTreeUri()。

只需為獲取的樹uri創建一個DocumentFile實例。

之后,在實例上使用createFile()。

以前已經發布過精確的示例。

只是做一些谷歌搜索。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM