如何使用Storage Access Framework在SD卡中创建新文件夹?

ปรี*_*ากร 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)

Com*_*are 5

您无法创建“在SD卡上创建新文件夹”。您可以在用户选择的其他文件夹中创建一个新文件夹,但是不能强制用户选择可移动存储。

要在其他文件夹中创建一个新文件夹,这应该起作用:

  1. 与启动活动startActivityForResult()ACTION_OPEN_DOCUMENT_TREE Intent,以允许用户选择一个文件夹。包括FLAG_DIR_SUPPORTS_CREATE以确保您可以在文件夹中创建新内容。

  2. 在中onActivityResult(),用包裹Uri您所获得的DocumentFile,然后对其进行调用createDirectory()以创建一个新文件夹,作为用户选择的子文件夹。

  • CommonsWare:一个例子将非常感激。 (2认同)