Java 使用存储访问框架创建文件夹

Java 使用存储访问框架创建文件夹,java,android,Java,Android,我认识安卓工作室。我想通过android应用程序在外部存储中创建文件夹。我尝试过使用getExternalStorageDir(),但它没有针对23级以上的API实现。请指导我在android应用程序中创建文件夹和文件。忽略任何语法错误(如果存在)。我还希望这个过程可以在后台完成,而无需离开mainactivity。用户可以在使用SAF选择器时选择创建新文件夹,但在没有任何用户交互的情况下,您无法以编程方式在外部存储中创建文件夹 例如,在布局中添加一个按钮,并为其提供一个OnClickListe

我认识安卓工作室。我想通过android应用程序在外部存储中创建文件夹。我尝试过使用
getExternalStorageDir()
,但它没有针对23级以上的API实现。请指导我在android应用程序中创建文件夹和文件。忽略任何语法错误(如果存在)。我还希望这个过程可以在后台完成,而无需离开mainactivity。

用户可以在使用SAF选择器时选择创建新文件夹,但在没有任何用户交互的情况下,您无法以编程方式在外部存储中创建文件夹

例如,在布局中添加一个按钮,并为其提供一个OnClickListener。然后让它在单击时运行此代码:

int OPEN_REQUEST_CODE = 41;
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
intent.setType("*/*");
intent.putExtra(Intent.EXTRA_TITLE, "Notes");
startActivityForResult(intent, OPEN_REQUEST_CODE);
这将提示用户创建一个名为“Notes”的文档,但用户可以选择文档的存储位置,如果用户选择,甚至可以重命名文档。在选择器中,有一个名为“newfolder”的选项供用户选择

作用域存储的部分想法是,他们不希望我们的开发人员只是用各种各样的文件和文件夹污染外部存储。因此,这让用户更容易控制

用户选择文件夹后,可以创建子文件夹,但这仍然需要提示用户授予对所选文件夹的一次性访问权限:

此外,本教程在学习SAF时对我很有帮助:


作用域存储的部分理念是,他们不希望我们的开发人员只是用各种各样的文件和文件夹污染外部存储。
可以。但是使用SAF,随着完整的外部存储变得可写,您可能会造成更大的污染。不仅是主分区,还有完整的micro sd卡。
我还希望此过程在后台完成,而不必离开mainactivity。
使用SAF,您至少应该调用用户一次,让他选择文件夹。