File对象中创建文件夹的方法mkdir与mkdirs的区别

mkdir与mkdirs相同之处 1.都是用来创建文件夹的. 2.要创建的文件夹存在或者成功都会返回Boolean值表示创建成功与失败,true表示存在或者创建成功,false表示创建失败. mkdir与mkdirs不相同之处 mkdirs()可以建立多级文件夹, mkdir()只会建立一级的文件夹 1.利用mkdirs()方法创建多级文件夹.

new File("D:/create/firstLevel/twoLevel/threeLevel").mkdirs();

注:执行后, 会在D盘路径下建立/create/firstLevel/twoLevel/threeLevel四级文件夹. 源码:

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());
    }

2.利用mkdir()方法创建多级文件夹会失败返回false, mkdir()只会建立一级的文件夹 .

new File("E:/create/firstLevel/twoLevel/threeLevel").mkdir();

注:不会在E盘下建立任何文件夹, 因为找不到/create/firstLevel/twoLevel/threeLevel文件夹, 结果返回false. 源码:

public boolean mkdir() {
          
   
        SecurityManager security = System.getSecurityManager();
        if (security != null) {
          
   
            security.checkWrite(path);
        }
        if (isInvalid()) {
          
   
            return false;
        }
        return fs.createDirectory(this);
    }
经验分享 程序员 微信小程序 职场和发展