java.io.File中mkdir()和mkdirs()區別

Penny-聽海發表於2018-04-26

 

 

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

    }

 

 

 

相關文章