前言
根据所学知识,完成对文件的常见操作。
一、练习1
- 需求:删除单级非空目录
public class day19作业0 {
public static void main(String[] args) {
//将非空目录封装成file
File F = new File("C:\\Users\\46188\\Desktop\\悬悬的secrets");
//获取该目录下的所有文件
File[] listFiles = F.listFiles();
//循环删除目录下的文件
for (File listFile : listFiles) {
listFile.delete();
}
}
}
二、练习2
- 需求:递归删除多级文件夹(重点掌握递归思想)
public class day19作业1 {
public static void main(String[] args) {
File F1 = new File("C:\\Users\\46188\\Desktop\\悬悬的secrets");
DeleteFiles(F1);
}
public static void DeleteFiles(File files1) {
//如果目录是文件,就直接删除
if (files1.isFile()){
files1.delete();
}else{
//如果目录非空
//1.获取目录的下的文件
File[] files = files1.listFiles();
//2.遍历得到目录下所有文件或子目录的绝对路径
for (File i : files) {
File file1 = new File(i.getAbsolutePath());
//3.递归删除——这样就把目录和子目录下的文件全部删除
DeleteFiles(file1);
}
//4.删除空目录
files1.delete();
}
}
}
三、练习3
- 需求:判断多级文件夹下有没有.jpg结尾的文件,如果有把后缀名 .jpg 文件改为.png
- 参考练习2,仍然采用递归实现。(涉及String类中常用方法)
public class day19作业3 {
public static void main(String[] args) {
File file = new File("C:\\Users\\46188\\Desktop\\美女");
JPGtoPNG(file);
}
public static void JPGtoPNG(File file){
//一.如果目录是文件并且以.jpg结尾
if(file.getName().endsWith(".jpg")&&file.isFile()){
//得到文件的绝对路径
String path=file.getAbsolutePath();
//得到名字的后缀.出现的索引值位置
int i = path.indexOf('.');
//截取不含后缀的文件路径
String prepath= path.substring(0,i);
//拼接新路径
String newpath=prepath+".png";
File newfile = new File(newpath);
//重命名
boolean b = file.renameTo(newfile);
System.out.println(b);
//二.如果是目录
}else if (!(file.isFile())){
//获取目录下子目录及文件
File[] files = file.listFiles();
//循环修改后缀名
for (File i : files) {
JPGtoPNG(i);
}
}
}
}
总结
通过这三个练习,灵活使用File类中的方法,并熟悉递归的思想。