对getParentFile()的理解

对getParentFile()的理解

起因

开发中常常会有一种场景:上传文件。构建好完整路径,需要确保文件的目录是存在的,如果不存在就创建目录。

有以下代码:

if(file.getParentFile()!=null || !file.getParentFile().isDirectory()){
            file.getParentFile().mkdirs();
        }

但是判断条件让我很不明白,一度困扰了很久。

解释

getParentFile()获取实例对象的父项的实例对象,如果此路径名未指定父目录,则返回null;也就是获取对象的上级目录然后再实例化一个对象;

file.getParentFile()!=null判断的是file有没有父路径。

getParentFile()获取的是当前文件的文件夹,而这个文件夹是否存在取决于你要创建的文件的路径中是否有文件夹,如new File("newFile")就是不存在文件夹,而new File("/direct/newFile")就存在文件夹,这是肯定是存在文件夹的去调用mkdirs()去创建文件夹了。

我还是不懂,暂且留着吧,想不通。

第二个是否为目录。考虑到目录不存在时候,isDirectory为false,因此取反的情况下为true,才可以创建目录。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值