我如何在 "Internal Storage" 目录中创建文件?

How could I create a file in the "Internal Storage" Directory?

我有一部三星 Galaxy S6。我目前正在开发一个测试应用程序,我想在其中快速访问包含我的文件的文件夹。

使用提供的 "My Files" 应用程序,它指定所有这些文件夹都在 "Internal Storage" 文件夹中。

我知道内部存储是私有的,但我想在插入 phone 时 windows 访问的默认文件夹中创建一个文件夹。 例如,以下代码没有在正确的位置创建目录。

File storage = new File("/testappplication");
if(!storage.exists()) {
   storage.mkdir();
   System.out.println("Folder Created");
}

我只想知道创建文件夹的路径。许多其他应用程序都在这里存储,所以我知道这是可能的。

您无法在设备的内部存储中创建目录。除非您拥有该应用程序的根访问权限。

因此,以下代码将不起作用:

File storage = new File("/testappplication");

因为它告诉应用程序在 root 文件夹中创建一个 testappplication

您只能在以下路径中的应用程序私有文件夹中创建目录:

String path = getFilesDir().getAbsolutePath();

并使用路径创建文件夹。

或者你可以这样使用:

File folder = new File(context.getFilesDir(), "testappplication");
if (!folder.exists()) {
    folder.mkdirs();
} else {
  // folder is exist.
}

Saving Files

阅读更多内容

首先只是为了试用 make runtime permmision 然后尝试下面的代码

 private void createInternalFile() {
    File mediaStorageDir = new File(Environment.getExternalStorageDirectory()+"/"+getApplicationContext()
            .getPackageName()+"/File/profile");
    if (!mediaStorageDir.exists()) {
        mediaStorageDir.mkdirs();
    } }

然后检查您的内部存储,您会在其中找到一个名为您的包名称的文件夹

过了一会儿我找到了这个问题的答案。

public void createDirectory() {
    File file = new File(Environment.getExternalStorageDirectory(), "/test");
    if (!file.exists()) {
        file.mkdirs();
        Log.w("DEBUG", "Created default directory.");

    }
}

这就是您通过代码创建它的方式。它没有创建的原因是三星的奇怪权限。

确保您在设置 -> 应用 -> 应用名称 -> 权限中启用了存储权限。我需要打开它以便创建文件夹。