mkdirs创建文件而不是创建文件夹[JAVA]

Oma*_*mar 1 java android file unzip

我在解压缩文件时遇到问题,我得到"打开失败:ENOTDIR(不是目录)"错误.调试后我发现问题出现在这个函数中:
我确定当前的ZipEntry是一个目录,我用它的路径调用这个函数:

private void dirChecker(String dir) {
        File FiledirChecker = new File(PATH + dir); // PATH+dir = /mnt/sdcard/Pictures/Hafs

        if (!FiledirChecker.isDirectory())
            FiledirChecker.mkdirs();
    }
Run Code Online (Sandbox Code Playgroud)

在此功能结束后,我浏览到Pictures目录,而Hafs不是一个目录,而是一个名为"Hafs"的0字节文件.

为什么会这样?

我应该指出,对于其他目录(除了"Hafs"),mkdirs通常会创建该文件夹!但只有这个目录(Hafs)mkdirs不会创建一个目录,而是一个文件!

Aar*_*lla 7

发生这种情况是因为代码中的其他地方已经创建了一个空文件.

或者当您的代码无法创建目录时,该文件是您上次运行的剩余文件.