<>关于 getParentFile().mkdirs() 的作用

<>0. 前言

我看到网上其他的人,解释的有点太那啥,我在这里提供一下自己的见解。虽然这个是一个比较基础的问题。

<>1. getParentFile().mkdirs(); 的作用

个人认为:

* 为了防止 你在创建文件的时候,避免其文件所在的 文件夹 不存在,然后抛出异常
至于为什么这么说呢,下面来证实一下

<>2. getParentFile();

首先是要介绍的是getParentFIie() 这个的意思
public static void main(String[] args) { // 文件的路径, 这个时候,你不知道这个路径到底是文件还是文件夹
String path=
"C:\\Users\\immortal\\Desktop\\other_temp\\csdn_test\\pers\\immort\\test\\temp";
// 创建一个file对象,指向其文件 File file = new File(path); // 获得getParentFile() //
那么这个parentFile指的是什么呢? File parentFile = file.getParentFile(); // 输出来看一下 System.
out.println(parentFile.getAbsolutePath()); }
比较结果

*
输出结果:
“C:\Users\immortal\Desktop\other_temp\csdn_test\pers\immort\test”

*
我们文件的目录:
“C:\Users\immortal\Desktop\other_temp\csdn_test\pers\immort\test\temp”
可以看到getParentFile(),返回了一个指向了 包含该文件 的文件夹的对象
譬如,"C:\Users\immortal\Desktop\other_temp\csdn_test\pers\immort\test\temp"
这个乍一看,像是文件夹的路径,但是getParentFile()之后,她会把她当成一个文件。 返回 包含 temp文件的 文件夹的绝对路径,也就是:
""C:\Users\immortal\Desktop\other_temp\csdn_test\pers\immort\test\"
这样,你调用getParentFile().mkdirs, 如果在没有这个文件夹的情况下,他会创建出来,之后 你在使用
file.createNewFile(); 这样可以绝对保证,文件创建成功, 因为文件所在的目录 在没有的情况下已经创建了。
<>3. 该方法的运用

<>3.1 前置准备

* 可以看到,此文件夹是空的

<>3.2 代码测试
public static void main(String[] args) throws IOException { // 文件的路径 String
path=
"C:\\Users\\immortal\\Desktop\\other_temp\\csdn_test\\pers\\immort\\test\\temp";
// 创建一个file对象,指向其文件 File file = new File(path); // 为了避免文件创建失败(其所在的文件夹不存在 //
所以创建它所在的文件目录) if (null != file.getParentFile()) { // 创建它所在的文件夹的目录,(该文件夹不存在的话,创建)
file.getParentFile().mkdirs(); } // 最后创建文件。这样创建文件,会更保险 file.createNewFile(); }
<>3.3 运行结果

* 可以看到,文件所在文件夹也创建好了,文件也同时创建好了,(因为我们没有指定扩展名,所以此文件没有扩展名)

<>4. 总结

现在应该已经大概清楚getParentFile().mkdirs(); 的作用了吧,

* 其作用就是为了避免文件创建失败(该文件所在的文件夹不存在所以创建它所在的文件目录)
* 注意mkdirs() ,方法 ,如果文件夹已经存在,是不会再次创建的

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信