ปรี*_*ากร 2 directory storage android
我想知道如何使用“存储访问框架”在SD卡上创建新文件夹。如果您给我提供代码,那就太好了。我已经搜索了其他问题和答案,但没有找到方法。
添加每个“ CommonsWare”答案已经起作用的代码。请注意,这是我发现它可以在装有Android OS 5.1.1的手机SS A5上的SD卡中创建新文件夹的唯一方法
public void newFolder(View view)
{
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
startActivityForResult(intent, NEW_FOLDER_REQUEST_CODE);
}
private static final int NEW_FOLDER_REQUEST_CODE = 43;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent resultData) {
super.onActivityResult(requestCode, resultCode, resultData);
Uri currentUri = null;
if (resultCode == Activity.RESULT_OK)
{
if (requestCode == NEW_FOLDER_REQUEST_CODE)
{
if (resultData != null) {
currentUri = resultData.getData();
DocumentFile pickedDir = DocumentFile.fromTreeUri(this, currentUri);
DocumentFile newDir = pickedDir.createDirectory("MyFolder");
textView.setText(newDir.getName());
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您无法创建“在SD卡上创建新文件夹”。您可以在用户选择的其他文件夹中创建一个新文件夹,但是不能强制用户选择可移动存储。
要在其他文件夹中创建一个新文件夹,这应该起作用:
与启动活动startActivityForResult()
上的ACTION_OPEN_DOCUMENT_TREE
Intent
,以允许用户选择一个文件夹。包括FLAG_DIR_SUPPORTS_CREATE
以确保您可以在文件夹中创建新内容。
在中onActivityResult()
,用包裹Uri
您所获得的DocumentFile
,然后对其进行调用createDirectory()
以创建一个新文件夹,作为用户选择的子文件夹。