5

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

我有权限:

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

我尝试了两种方法:

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

我能做错什么?任何想法?

4

2 回答 2

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();
}
于 2015-06-01T12:57:07.250 回答
0

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

可能的解决方案

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

于 2014-09-25T10:25:54.100 回答