mkdir()和mkdirs()的区别
来源:互联网 发布:ae2018cc破解版mac 编辑:程序博客网 时间:2024/05/19 13:29
本文内容主要整理自Stack Overflow的问题:Difference between mkdir() and mkdirs() in java for java.io.File [closed]
问题起源
最近在实习工作中,将项目部署到新环境的服务器中时,遇到了mkdir()
失败的问题。原因是在项目中配置的路径信息在新服务器上不存在,而且该路径是多层目录结构,mkdir()
在多层目录不存在的情况下会执行失败。但是如果手动去多个环境中挨个创建目录,工作实在是太繁琐。所以查资料寻找解决方案,这里发现了mkdirs()
方法,顺利解决问题。看到stack overflow上对该问题的解释很XX,特此记录。
本篇文章重点不在技术难度,主要是做笔记记录,方便自己查阅和回顾。
问题描述
java.io.FIle中file.mkDir()
和 file.mkDirs()
的区别。
详解
对于mkdirs()
,它会同时创建该文件所在路径的所有缺失的父目录;而mkdir()
只会创建该文件所在路径的最底层的目录,也就是该文件所在目录。当mkdir()
无法找到即将创建的目录的上一层目录时,就会执行失败,返回false。
两个函数的返回值都是boolean
类型。
举例来说,我需要在目录/tmp
下创建新目录。首先我们有:
File f = new File("/tmp/one/two/three");
当我们调用函数mkdirs()
:
f.mkdirs();
执行效果是同时创建了三层目录one、two、three,具体为:
/tmp/one
/tmp/one/two
/tmp/one/two/three
对于mkdir()
:
f.mkdir();
当/tmp/one/two
目录已经存在时,则执行成功,创建出目录:/tmp/one/two/three
。而如果目录/tmp/one/two/three
不存在,那么则会返回false。
延伸
官方文档
信息的源头还是官方文档和源码,可以继续看英文文档加深理解。
- javadocs for
mkdirs()
- javadocs for
mkdir()
linux命令对比
这个命令可以类比Linux命令的mkdir
。即,mkdir()
函数效果类似于mkdir
,而mkdirs()
则类似于mkdir -p
。
mkdir -p /tmp/one/two/three
更详细的命令使用方式可以man
进行查看。
- mkdir()和mkdirs()的区别
- mkdir和mkdirs区别
- mkdir()和mkdirs()区别
- mkdir()和mkdirs()区别
- mkdir()和mkdirs()区别
- File.mkdirs和File.mkdir的区别
- File中mkdir()和mkdirs()的区别
- File.mkdirs和File.mkdir的区别
- java mkdir()和mkdirs()的区别
- java mkdir()和mkdirs()区别
- java mkdir()和mkdirs()区别
- java mkdir()和mkdirs()区别
- java mkdir()和mkdirs()区别
- java mkdir()和mkdirs()区别
- File mkdir()和mkdirs()区别
- java mkdir()和mkdirs()区别
- java mkdir()和mkdirs()区别
- java mkdir()和mkdirs()区别
- CCPC2017网络赛8月19日总结
- hdu-6153 A Secret
- 配置错误 在唯一密钥属性“fileExtension”设置为“.mp4”时,无法添加类型为“mimeMap”的重复集合项
- JavaScript实现下拉框联动的方法与见解
- 时间复杂度_函数传参、传引用、传指针
- mkdir()和mkdirs()的区别
- linux下创建和删除软、硬链接
- 我的第一篇博客
- 哥德巴赫猜想
- Java 随机数的生成 学习笔记
- POJ1862 Stripies (贪心)
- effective C++ 条款九解读
- ios编译ffmpeg
- Dell电脑如何设置Fn键和其它功能键的组合