有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

解压文件时遇到问题,出现“open failed:ENOTDIR(非目录)”错误。。调试后,我发现问题出在这个函数中:
确定当前ZipEntry是目录后,我使用其路径调用此函数:

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

        if (!FiledirChecker.isDirectory())
            FiledirChecker.mkdirs();
    }

这个功能完成后,我浏览了图片目录,Hafs不是一个目录,而是一个0字节的文件,叫做“Hafs”

为什么会这样

我应该指出,对于其他目录(除了“Hafs”),mkdirs通常创建文件夹!但仅针对此目录(Hafs),mkdirs不生成目录,而是生成文件


共 (2) 个答案

  1. # 1 楼答案

    这是因为代码中的其他地方已经创建了一个空文件

    或者该文件是上次代码无法创建目录时运行的遗留文件

  2. # 2 楼答案

    除非我错过了什么你的文件已经在其他地方创建了
    根据我在你的代码中看到的
    1) 检查文件是否不是目录
    2) 如果1)为真,则尝试创建完整的目录结构和与可能已存在的文件同名的目录