File文件操作类(创建目录)
一、错误范例
在之前所创建的文件都是在根目录下直接进行的控制,如果再有目录出现,则以上的代码将无法执行。
范例:错误的代码
public class TestDemo {
public static void main(String[] args) throws Exception{
File file =new File("d:"+ File.separator +"hello"+ File.separator +"hello.txt");//定义要操作的文件路径
if (file.exists(){ // 文件存在
file.delete();
}else {// 文件不存在
file.createNewFile();// 创建新文件
}
}
}
演示结果为:Exception inthread “main” java.io.IOException:系统找不到指定的路径。
在当前的环境中,本代码存在一个最大的问题:
不存在父路径,所以无法找到。
二、创建目录
在File类中定义有如下的方法可取得父路径:
- 取得父路径:
包括两个方法分别为getParent和getParentFile,其中getParentFile较好操作,因为需要对父目录进行创建,所以需要先取得父路径的File类对象。
所以方法是:public File getParentFile();
- 创建目录:
public boolean mkdirs();mkdir后加s表示无论存在几级目录都会进行创建。
演示:
public class TestDemo{
public static void main(String[] args) throws Exception {
File file = new File("d:"+ File.separator +"hello"+ File.separator+”abc”+File.separator+”bcd”+File.separator+"hello.txt")
if (!file.getParentFile().exists()){ // 父目录不存在
file.getParentFile().mkdirs() ;// 创建父目录
}
if (file.exists()) { //文件存在
file.delete();
} else {// 文件不存在
file.createNewFile();// 创建新文件
}
}
}
注意:
判断父目录而后创建父目录的操作代码非常重要,在以后的开发此类的父目录的判断会经常出现。
如果有多级目录,必须要先创建目录再创建文件。