JAVA_创建文件与文件夹

参考: https://blog.csdn.net/qq_23958061/article/details/83687685
https://bbs.csdn.net/topics/390240130

// 我以前是这样创建文件夹的...	
	if(!f.exist()){
		f.createNewFile();
	}

后来就想这样创建的时候会不会自动创建文件夹呢?
翻了翻源码… 没找到实现(太菜了
百度一下 找到啦!https://bbs.csdn.net/topics/390240130

创建文件的时候会不会自动创建文件夹呢?

不会

那么要如何做呢?
if(!f.getParentFile().exists()){
	// 先创建文件夹,最后在加一步创建文件的操作
	f.getParentFile().mkdirs(); 
	f.createNewFile();
}
mkdirs or mkdir ?

mkdir是用来创建单层文件夹的
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());
}

这里贴下源码 前面乱七八糟的我们不看,就看最后的return
我们可以看到 mkdirs 是基于 mkdir 的递归实现的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值