File类
java.io.File
类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。
File类的构造方法
注意:构造方法构造的File类可能是文件或者目录的实例化File对象。也可以用相对路径创建File对象,相对路径的基准是项目路径。
public File(String pathname)
:通过将给定的字符串路径名创建File实例。该pathname不一定存在于本地文件中,后期可根据相关手段来判断该文件是否存在。示例代码:
File file = new File("D:/dd/test.txt");
public File(String parent, String child)
:从父路径名字符串和子路径名字符串创建新的 File实例。
File file = new File("D:/dd", "test.txt");
public File(File parent, String child)
:从父抽象路径名和子路径名字符串创建新的 File实例。
File file = new File("D:/dd");
File file2 = new File(file, "test.txt");
File实例化对象的常用方法–获取路径名、文件名、字节数
public String getAbsolutePath()
:返回此File的绝对路径名字符串。- public String getPath() :返回文件路径,该路径为构造器里面传递的路径。
public String getName()
:返回由此File表示的文件或目录的名称。也就是绝对路径下最后一个“/”后面的名字。public long length()
:返回由此File表示的文件的长度。单位是字节。public String getParent()
: 返回此FILE表示的文件的父级目录。
判断方法
public boolean exists()
:此File表示的文件或目录是否实际存在。public boolean isDirectory()
:此File表示的是否为目录。public boolean isFile()
:此File表示的是否为文件。
创建和删除的方法
public boolean createNewFile()
:当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。如果文件名存在,则不会创建并返回false。public boolean delete()
:删除由此File表示的文件或目录。注意删除目录时,目录里面必须没有文件才能删除,并且可递归删除多层空目录。public boolean mkdir()
:创建由此File表示的目录。只能创建单层目录。public boolean mkdirs()
:创建由此File表示的目录,包括任何必需但不存在的父目录。即创建多层目录。
目录的遍历
public String[] list()
:返回一个String数组,表示该File目录中的所有子文件或目录。public File[] listFiles()
:返回一个File数组,表示该File目录中的所有的子文件或目录。
注意:该方法的返回值在以下3种情况下可能为null
a) 调用对象是文件
b)调用对象在磁盘中不存在
c)调用对象是一个系统目录
综合实例–通过递归删除某个目录
import java.io.File;
public class Demo {
public static void main(String[] args) {
// name可以换成你想要删除的目录的绝对路径
String name = "C:\\Users\\17634\\Desktop\\抖音文案 - 副本"
File file = new File(name);
delDir(file);
}
// 该方法的思想是递归删除所有文件,最后将空目录删除。
public static void delDir(File file) {
File[] files = file.listFiles();
if (files != null) {
for (File f : files) {
if (f.isFile()) {
f.delete();
}else if (f.isDirectory()){
delDir(f);
}
}
file.delete();
}else {
System.out.println("无法进入系统路径...");
}
}
}
这样就可以清空某个目录了,但是系统目录是删不了的。小伙伴们千万不要把name设置为"C:/“或者"D:/”,不然后果很严重的,程序删除是不走回收站的。