![](/img/trans.png)
[英]Create new file in the directory returned by 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.