.1 File定义
File对象表示一个路径,可以是文件路径也可以是文件夹的路径
这个路径可以是存在的也可以是不存在的
.2 File构造方法
.2.1 根据文件路径创建文件对象
//创建文件夹对象
//1.根据字符串表示的路径,变成File对象
String str= "C:\\Users\\ImmortalsK\\Desktop\\集合体系结构.docx";
File f1 = new File(str);
System.out.println(f1);
.2.2 根据父路径名字符串和子路径名子符串创建文件对象
//根据父级字符串和子级字符串创建文件对象
String parent = "C:\\Users\\ImmortalsK\\Desktop";
String child = "集合体系结构.docx";
File f2 = new File(parent,child);
System.out.println(f2);
2.3 根据父路径对应文件对象和子路径名字符串创建文件对象
//根据父级文件对象和子级字符串创建文件对象
File parent2 = new File("C:\\Users\\ImmortalsK\\Desktop");
String child2 = "集合体系结构.docx";
File f3 = new File(parent2,child2);
System.out.println(f3);
.3 File成员方法
.3.1 判断
存在返回true 不存在返回false
//对一个文件路径进行判断
File f1 = new File("C:\\Users\\ImmortalsK\\Desktop\\德育分证明\\文体活动\\“盎然春光,一切‘植’得”蚂蚁森林线上合种树活动证明.png");
//判断是否是文件
System.out.println(f1.isFile());
//判断是否是文件夹
System.out.println(f1.isDirectory());
//判断文件/文件夹是否存在
System.out.println(f1.exists());
.3.2 获取
File f1 = new File("C:\\Users\\ImmortalsK\\Desktop\\德育分证明\\文体活动\\“盎然春光,一切‘植’得”蚂蚁森林线上合种树活动证明.png");
//返回文件大小(字节数量)单位 :字节
//无法获取文件夹的大小
System.out.println(f1.length());
//获取文件的绝对路径 定义的时候相对绝对路径都是获取的绝对路径
System.out.println(f1.getAbsoluteFile());
//返回定义文件对象时的路径
System.out.println(f1.getPath());
//获取名字
// 文件 文件名和后缀
// 文件夹 文件夹名
System.out.println(f1.getName());
//返回文件的最后修改时间(时间毫秒值)
System.out.println(f1.lastModified());
Date date = new Date(f1.lastModified());
//转成日期
DateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH时 mm分 ss秒");
System.out.println(dateFormat.format(date));
.3.3 创建
创建成功返回true 创建失败返回false
//创建一个新的空文件夹
// 如果当前路径表示的文件是不存在的,则创建成功,返回true 反正返回false
// 如果父级路径不存在,那么方法会有异常IOException
// createNewFile()创建的一定是一个文件,如果路径中不包含后缀名,那么创建出来的文件也不包含后缀名
File f2 = new File("D:\\BaiduNetdiskDownload\\aaa");
boolean b = f2.createNewFile();
System.out.println(b);
//创建单级文件夹(目录)
//window系统中路径是唯一的,如果路径已经存在那么就会创建失败,返回false
//mkdir方法只能创建单级文件加,无法创建多级文件夹
File f3 = new File("D:\\BaiduNetdiskDownload\\bbb");
boolean c = f3.mkdir();
System.out.println(c);
//创建多级文件夹(目录)
//既可以创建单级文件夹也可以创建多级文件夹 一般都是用mkdirs
File f4 = new File("D:\\BaiduNetdiskDownload\\bbb\\ccc\\aaa");
boolean d = f4.mkdirs();
System.out.println(d);
.3.4 删除
delete方法默认只能删除文件和空文件夹,delete方法直接删除不走回收站
删除成功返回true 删除失败返回false
//删除文件 直接删除不进回收站
//直接删除文件
//删除文件夹时 如果文件夹里面有内容 删除失败返回false
boolean e = f3.delete();
System.out.println(e);
.3.5获取并遍历
当调用者File表示的路径不存在时,返回null
当调用者File表示的路径是文件时,返回null
当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组
当调用者File表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放到File数组中返回
当调用者File表示的路径有一个隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
当调用者File表示的路径是需要权限才能访问的文件夹时,返回null
//获取并遍历
//获取文件夹里面的所有内容,把所有内容放到数组中返回
File f5 = new File("D:\\解限机");
File[] files = f5.listFiles();
for (File file : files) {
//file依次表示文件夹里面的每一个文件或者文件夹
System.out.println(file);
}
.3.6 获取当前路径下的所有内容(只能获得名字)
File f5 = new File("D:\\解限机");
//list() 获取当前路径下的所有内容(只能获得名字)
String[] list = f5.list();
for (String s : list) {
System.out.println(s);
}
//list(FilenameFilter filter) 利用文件名过滤器获取当前路径下的所有内容 //listFiles()也可以代替
//accept方法的形参 依次表示aaa文件夹里面的每一个文件或者文件夹的路径
//参数一:File父级路径
//参数二:String子级路径
String[] list1 = f5.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
//获取某个文件夹里的txt文件
File src = new File(dir, name);
return src.isFile() && name.endsWith(".txt");
}
});
System.out.println(Arrays.toString(list1));
.4 File静态方法
listRoots 获取盘符
返回 :
[C:\, D:\]
//File的静态方法 listRoots 获取系统中所有的盘符
File[] files1 = File.listRoots();
System.out.println(Arrays.toString(files1));