如何在android java中的/storage/extSdCard路径中创建目录?

如何在android java中的/storage/extSdCard路径中创建目录?,android,Android,我可以使用此选项查看SD卡文件夹内容 File f = new File("/storage/extSdCard"); if (f.exists()) { File[] files = f.listFiles(); if (files != null) { for (File filz : files) { Toast.makeText(this, filz.getName() + "", T

我可以使用此选项查看SD卡文件夹内容

    File f = new File("/storage/extSdCard");
    if (f.exists()) {
        File[] files = f.listFiles();
        if (files != null) {
            for (File filz : files) {
                Toast.makeText(this, filz.getName() + "", Toast.LENGTH_SHORT).show();
            }
        }
    }
但是当我尝试创建目录时

File dir = new File("/storage/extSdCard/Android/Mayor");
    try {
        if (!dir.exists()) {
            if (dir.mkdirs()) {
                Toast.makeText(this, "Folder Created", Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(this, "Folder Not Created", Toast.LENGTH_LONG).show();
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(this, "WTF", Toast.LENGTH_LONG).show();
    }

它一点也不创造。有什么想法吗

//为父目录创建文件对象

File myDirectory = new File("/sdcard/Wallpaper/");
//如果需要,让对象构建目录结构

myDirectory.mkdirs();

//为输出文件创建文件对象

File outputFile = new File(myDirectory, filename);
//现在将OutputStream附加到文件对象,而不是字符串表示

FileOutputStream fos = new FileOutputStream(outputFile);
注意: 使用Environment.getExternalStorageDirectory()获取“SD卡”目录可能是明智的,因为如果手机附带SD卡以外的内容(如内置闪存、iPhone中的a'la),则该目录可能会更改。无论哪种方式,您都应该记住,您需要检查以确保它确实存在,因为SD卡可能会被移除

更新: 由于API级别4(1.6),您还必须请求许可。类似这样的东西(在清单中)应该起作用:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

文件mnt=新文件(“/storage”)

如果(!mnt.exists()) mnt=新文件(“/mnt”)

File[]root=mnt.listFiles()


对于读取外部SD卡,您需要先装载SD卡路径,然后才能使用外部SD卡路径。

您需要使用在可移动SD卡上创建目录。请参见

仍然无法创建目录:(文件f=new File(“/sdcard/Anime/”);f.mkdirs();文件outputfile=new File(f,“Demo”);尝试{FileOutputStream fos=new FileOutputStream(outputfile);}catch(FileNotFoundException e){e.printStackTrace();}catch(IOException e){e.printStackTrace();}您的设备有什么操作系统版本?5.1.1,我已经设置了该权限。我尝试使用我的代码,但在不同的路径上,它可以工作,但在sd卡上不工作。我使用了Environment.getExternalStorageDirectory(),但它指向设备存储。文件f=new File(“/”+Environment.getExternalStorageDirectory().getPath()+“/Anime/”);getExternalStorageDirectory指向不在可移动sd卡上的设备存储。如果已安装,我甚至可以访问并显示sd卡内容的名称,但我无法创建目录。您无法直接获取外部sd卡的路径,您需要先检查ExtSD卡是否可用,然后再选择sd卡name.File f=new File(“/storage/extSdCard”);if(f.exists()){File[]files=f.listFiles();if(files!=null){for(File filz:files){Toast.makeText(this,filz.getName()+”,Toast.LENGTH_SHORT).show();}…它显示该路径下的文件夹名称,它来自我的SD卡,但我无法创建目录。File mnt=new File(“/storage”);if(!mnt.exists())mnt=new File(“/mnt”);File[]root=mnt.listFiles();检查根目录的结果…您可以获取外部SD卡的路径,然后可以使用此路径创建新目录。结果为{UsbDriveF、UsbDriveE、UsbDriveD、UsbDriveC、UsbDriveB、UsbDriveA、sdcard、extSdCard、shell},当我使用SD卡时,它指向设备存储;当我使用extSD卡时,它指向可移动SD卡;当我使用extSD卡创建目录时,它不会创建任何东西,但当我使用SD卡时,它会在设备存储中创建目录文件夹?我的意思是,它将自动创建您在路径中指定的文件夹。您需要请求对可移动存储上的文件的权限。如果文件位于内部存储,则您需要写入外部存储权限。您只需要授予一次权限。这在Android 6.0+上是强制性的(可能是5.0+,在手机上,无法检查)。