在SD卡上创建一个带有子文件夹的文件夹

6
我在以下代码中遇到了问题:

    File folder = new File(Environment.getExternalStorageDirectory() + "/myapp/folderone/foldertwo");
    boolean success = false;
    if (!folder.exists()) {
        success = folder.mkdir();
    }
    if (!success) {
    } else {
    }

但是它根本不起作用,我还添加了权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

希望有人能帮助我解决这个问题。
2个回答

24
尝试仅使用mkdirs()而非mkdir(),对我有效。 例如:
File folder = new File(Environment.getExternalStorageDirectory() + "/myapp/folderone/foldertwo");
    boolean success = false;
    if (!folder.exists()) {
        success = folder.mkdirs();
    }
    if (!success) {
    } else {
    }

1
哦,天啊,我怎么会这么瞎,已经搜索了几个小时了还是找不到解决方案。 - ollidiemaus
3
那就是开发者的日常生活啦 ^^ … 点赞和采纳都是受欢迎的 ;) - Thkru

6

您是否尝试过调用mkdirs()而不是mkdir()

mkdir()只会创建指定的单个文件夹,对于您的情况就是"foldertwo"。

mkdirs()将创建指定的文件夹(foldertwo),以及路径中所有其他必需的文件夹(myapp和folderone)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接