【问题标题】:Making Folders on SDcard in android在android中的SD卡上制作文件夹
【发布时间】:2016-02-29 12:02:32
【问题描述】:

我正在制作一个 Android 应用程序,我需要在存储磁盘卡上创建文件夹。 我的主要活动课程: 我添加了三个按钮,每次单击都是写入一个文件夹。 我的程序正在执行,但 Toast 消息是“未创建目录”。 我检查了我的存储磁盘卡,它在那里,我还在清单中添加了用户权限。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final boolean isSDWritable = SDcard.isExternalStorageWritable();
    buttonDownlaod = (Button) findViewById(R.id.activity_main_directoryDownload);
    buttonPictures = (Button) findViewById(R.id.activity_main_directoryPictures);
    buttonMovies = (Button) findViewById(R.id.activity_main_directoryMovies);
    buttonDownlaod.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (isSDWritable) {
                getStorageDir(Environment.DIRECTORY_DOWNLOADS, "MyDownlaods");
            }
        }
    });
    buttonMovies.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (isSDWritable) {
                getStorageDir(Environment.DIRECTORY_MOVIES, "MyMovies");
            }
        }
    });
    buttonPictures.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (isSDWritable) {
                getStorageDir(Environment.DIRECTORY_PICTURES, "MyPictures");
            }
        }
    });
}

public File getStorageDir(String inBuiltDir, String folderName) {
    String inBuiltdir = Environment.getExternalStorageDirectory().getAbsolutePath();
    File file = new File(inBuiltDir, folderName);
    if (!file.mkdirs()) {
        Toast.makeText(this, "Directory is not created", Toast.LENGTH_SHORT).show();
    } else {
        Toast.makeText(this, "Folder Name" + folderName + "Created", Toast.LENGTH_SHORT).show();
    }
    return file;
}

} // Update code formatting

任何人都可以帮助解决代码中的问题,这就是未创建目录的原因。

【问题讨论】:

  • 您是否有权写入清单文件中声明的外部存储??
  • 是的,我确实获得了许可。我在清单文件中声明..
  • 代码现在运行良好。刚刚实现了 getExternalFilesDir() 而不是 getExternalStorageDirectory()。
  • 啊,是的,有了新的 android 操作系统规范,它会强制您在标记为存储应用程序特定文件的位置创建文件

标签: android java-io


【解决方案1】:

我认为您不能在这些特定目录中创建文件夹。请尝试其他目录。

【讨论】:

    【解决方案2】:

    试试这个

    File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/"+folderName+"/");
    file.mkdirs();
    

    【讨论】:

    • 替换为您的代码,没有变化。消息仍然是“目录未创建”
    【解决方案3】:

    假设我想在 SD 卡上创建示例文件夹

    File recordingDirectory = new File("/sdcard/sample/");
    if (!recordingDirectory.exists()) {
        recordingDirectory.mkdirs();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-31
      • 1970-01-01
      • 2016-04-18
      • 2019-12-20
      • 2011-08-08
      • 2018-05-18
      • 2011-08-07
      • 2011-05-01
      相关资源
      最近更新 更多