无法在marshmallow版本的外部存储中创建文件夹

时间:2016-03-11 06:37:09

标签: android

当我尝试在marshmallow中运行此代码时,文件夹未创建.. 代码是,我试图运行相同的代码,其工作正常,除了marshmallow

File folder = new File(Environment.getExternalStorageDirectory() + "/abcdefg");
    boolean success = false;
    if (!folder.exists()) {
        success = folder.mkdir();
    }
    if (!success) {
        Log.d("", "Folder not created.");
    } else {
        Log.d("", "Folder created!");
    }

2 个答案:

答案 0 :(得分:1)

尝试在活动中添加以下代码以请求运行时权限。 您需要READ_EXTERNAL_STORAGE权限才能在外部存储中创建文件夹(目录)。

if (ActivityCompat.checkSelfPermission(YourActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(new String[]{ Manifest.permission.WRITE_EXTERNAL_STORAGE},
                    REQUEST_FOR_STORAGE);//REQUEST_FOR_STORAGE=1111
        } else {
//Do your stuff here
            }
...

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {

if(requestCode == REQUEST_FOR_STORAGE){
  //Do your stuff here
  }
 }

希望对你有所帮助。

答案 1 :(得分:0)

由于棉花糖引入运行时许可,您必须检查权限

在运行时间。你可以参考这里

1。https://developer.android.com/training/permissions/requesting.html

2。https://www.youtube.com/watch?v=iZqDdvhTZj0

3。https://www.youtube.com/watch?v=C8lUdPVSzDk

您必须动态接受用户的STORAGE权限组。 请使用以下链接 http://developer.android.com/guide/topics/security/permissions.html