我在解压文件时遇到问题,出现“open failed: ENOTDIR (Not a directory)”错误。经过调试发现问题出在这个函数上:
确定当前的ZipEntry是一个目录后,我用它的路径调用这个函数:
private void dirChecker(String dir) {
File FiledirChecker = new File(PATH + dir); // PATH+dir = /mnt/sdcard/Pictures/Hafs
if (!FiledirChecker.isDirectory())
FiledirChecker.mkdirs();
}
此功能结束后,我浏览到图片目录,Hafs 不是目录,而是一个名为“Hafs”的 0 字节文件。
为什么会这样?
我应该指出,对于其他目录(“Hafs”除外),mkdirs 通常会创建该文件夹!但仅针对此目录 (Hafs) mkdirs 不会创建目录而是文件!