删除文件夹后,mkdir()返回false

时间:2014-09-25 10:20:29

标签: android mkdir mkdirs

我的应用中有一个名为"重置"删除整个文件夹(用户文件夹)。在那之后,我试图再次创建相同的文件夹,第一次尝试它,它允许我创建文件夹,但第二次我尝试重置并重新创建用户文件夹,应用程序崩溃因为mkdir ()没有创建该文件夹,我试图在该文件夹上创建一个数据库。但是,奇怪的是,崩溃后,文件夹已经创建。

我获得了许可:

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

我尝试了两种方法:

f.mkdir();
f.mkdirs();

我有什么不对的?有什么想法吗?

2 个答案:

答案 0 :(得分:4)

我也遇到了同样的问题。但是,最后,我认为我找到了一个解决方案(可能是解决方法)。

删除目录时,重命名并删除。然后,通常使用File.mkdirs()创建目录。这应该工作正常。我在我的案例中测试过。它有效!!!

public static final void renameAndDelete(File fileOrDirectory) {
    File newFile = new File(fileOrDirectory.getParent() + File.separator
                + "_" + fileOrDirectory.getName());
    fileOrDirectory.renameTo(newFile);
    delete(newFile);
}
public static final void delete(File fileOrDirectory) {
    if (fileOrDirectory.isDirectory())
        for (File child : fileOrDirectory.listFiles())
            delete(child);

    fileOrDirectory.delete();
}

答案 1 :(得分:0)

我认为这是因为您正在调用创建文件夹的方法,在创建文件夹之前,您正尝试在该文件夹中创建数据库!

可能的解决方案

在成功创建文件夹后尝试创建数据库。在再次创建数据库时,请检查该文件夹/路径是否存在。