为应用程序创建一个文件夹

Create a file folder for app

以下代码没有在我的设备中创建文件夹。

    String intStorageDirectory = context.getFilesDir().toString();
    File folder = new File(intStorageDirectory, "test");
    folder.createNewFile();;

我需要为我的应用创建一个文件夹,以便在用户安装时存储媒体。该文件夹应该在文件资源管理器中可见。我该怎么做?

new File(context.getFielsDir(), "test").mkdirs();

createNewFile 创建文件,而不是文件夹。使用 mkdirs 而不是 mkdir 确保所有父项都存在。当您已经有一个文件时,也没有理由去遍历一个字符串。

添加folder.mkdirs();应该代替 folder.createNewFile();并且不要忘记添加权限。

这将在您的数据目录中创建一个文件夹。 只是一个建议,如果你想将媒体存储在 SD 卡文件夹中,也许 Environment.getExternalStorageDirectory() 是好的。

使用您创建文件的当前代码段,您也可以通过创建文件来创建文件夹,但您的当前目录是基本文件夹,getFilesDir() 指向您的应用程序 internal storage,除非明确说明,否则不可见或不可访问宣布。您可以使用 new File().createNewFile() 创建文件夹和文件,或使用 mkdirs() 仅创建文件夹,但您将无法使用文件资源管理器应用程序显示它,并且文件夹和其中的文件将被删除when/if 用户卸载了您的应用。

要在外部保存文件(这并不意味着保存到 SD 卡)您可以使用

创建目录和文件
File mediaStorageDir = new File(Environment.getExternalStorageDirectory(), folderName);
if (!mediaStorageDir.exists()) {
    mediaStorageDir.mkdirs()
}
File mediaFile = new File(mediaStorageDir.getAbsolutePath() + File.separator + fileName);

并且您需要某种 OutputStream 才能将数据写入该文件。

确保在 AndroidManifest.xml 文件中询问 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 并在 android:targetSdkVersion="23" 或以上

时询问运行时的写入权限