Java Android无法访问mkdirs()

Java Android无法访问mkdirs(),java,android,storage,android-file,Java,Android,Storage,Android File,我知道已经有人问过类似的问题,但我已经试着去做我在那里读到的 我正在编写一个需要访问和创建一些文件的应用程序,在我的onCreate()方法中,我调用directoryMaker()方法: static final String externalPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath()+"/MyFolder"; //This is

我知道已经有人问过类似的问题,但我已经试着去做我在那里读到的

我正在编写一个需要访问和创建一些文件的应用程序,在我的
onCreate()
方法中,我调用
directoryMaker()
方法:

 static final String externalPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath()+"/MyFolder"; //This is a global variable

 private void directoryMaker (){
    if(externalIsMounted()){
        File external = new File(externalPath);
        if(!external.exists()){
           if(external.mkdirs()){
               Log.i("GalleryActivity", "Folder created");
           }
            else{
               Log.e("GalleryActivity", "Folder not created");
           }

        }
    }
}

private boolean externalIsMounted(){
    return Environment.getExternalStorageState().equals(
            Environment.MEDIA_MOUNTED);
}
这是我的清单(至少是相关部分):


运行它会出现“文件夹未创建”错误:我不知道此时会出现什么问题

对不起,我的英语不好,这不是我的第一语言

编辑1 整个AndroidManifest.xml


尝试以下构造函数,而不是自己编写路径

File external = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyFolder");
然后调用
mkdir()
方法。
您不需要
READ\u EXTERNAL\u STORAGE
权限,因为
WRITE\u EXTERNAL\u STORAGE
隐式使用它

试试这个:

    File root = Environment.getExternalStorageDirectory();
    String dirPath = root.toString() +  "/Pictures/Your folder/";
    File dir = new File(dirPath);

    if (!dir.exists()) {
       dir.mkdirs();
    }

首先让我原谅一下,我明白我的问题有多愚蠢:我是Android编程新手,所以


无论如何,代码没有任何问题,但我在AndroidStudio emulator上运行它,我必须在设置->应用程序菜单中为应用程序授予权限。

您将它们放在AndroidManifest的何处?你能给我们看一下完整的舱单吗?在标签里,不管怎样,我已经在问题中添加了它。还有:为什么这个问题一直被忽略?有什么问题吗?试过了,但它也给了我同样的问题。也感谢您的许可信息。
File external = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyFolder");
    File root = Environment.getExternalStorageDirectory();
    String dirPath = root.toString() +  "/Pictures/Your folder/";
    File dir = new File(dirPath);

    if (!dir.exists()) {
       dir.mkdirs();
    }