Java 文件方法

java中file.mkdirs()方法用于创建目录,该方法创建的目录是多层级的。可以创建/home/dir1/dir2/dir3形式的目录。

语法

public boolean mkdirs() 

参数

没有参数

返回值

布尔值,成功创建返回true,失败返回false。

注意

创建目录需要有相应的权限。

例子

介绍一个例子了解该函数的使用方法。
package com.example.yxjc.test;

import java.io.File;

public class Test {
    public static void main(String[] args) {
        File file = new File("D:\\file_test\\dir1\\dir2");
        if (file.mkdirs()) {
            System.out.println(file.getAbsolutePath() + "目录创建成功");
        } else {
            System.out.println(file.getAbsolutePath() + "目录创建失败");
        }


    }

}

输出:

D:\file_test\dir1\dir2目录创建成功

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

public File getCanonicalFile() throws IOException {
	String canonPath = getCanonicalPath();
	if (getClass() != File.class) {
		canonPath = fs.normalize(canonPath);
	}
	return new File(canonPath, fs.prefixLength(canonPath));
}

public File getParentFile() {
	String p = this.getParent();
	if (p == null) return null;
	if (getClass() != File.class) {
		p = fs.normalize(p);
	}
	return new File(p, this.prefixLength);
}