java.io.File中mkdir()和mkdirs()区别

mkdirs() 与 mkdir() 不同

boolean mkdir() 创建此抽象路径名指定的目录。

boolean mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。


代码mkdir

String path ="E:\\data\\a\\b\\c";

Boolean result = new File(path).mkdir();
    

System.out.println(result);

当c的父目录存在时 返回true

当c的父目录不存在时 返回false


代码

String path ="E:\\data\\a\\b\\c";

Boolean result = new File(path).mkdirs();

System.out.println(result);

当c父的目录不存在时,mkdirs会创建父目录 返回true



mkdirs 源码

public boolean mkdirs() {
        if (exists()) {
            return false;
        }
        if (mkdir()) {
            return true;
        }
        File canonFile = null;
        try {
            canonFile = getCanonicalFile();
        } catch (IOException e) {
            return false;
        }


        File parent = canonFile.getParentFile();
        return (parent != null && (parent.mkdirs() || parent.exists()) &&
                canonFile.mkdir());

    }




猜你喜欢

转载自blog.csdn.net/weixin_37730482/article/details/80097309