把一个目录和里面的子孙目录文件遍历到世界的尽头
目录的绝对路径随意更换
public class FileDemo {
//定义一个文件目录的层级
static int level;
public static void main(String[] args) throws IOException {
//创建一个目录对象 文件路径随意更换
File file = new File("C:\\code");
parseFile(file);
}
public static void parseFile(File file) {
if(file == null || !file.exists()) {
return;
}
//给层级来加一
level++;
//获得文件对象的子文件对象列表
File[] files = file.listFiles();
//遍历这些子文件
for (File f : files){
//打印层级的缩进
for (int i = 0; i < level; i++)
System.out.print("\t");
//打印文件
System.out.println(f.getName());
//判断这些子文件是否是目录
if(f.isDirectory()){
//递归的方式来遍历
parseFile(f);
}
}
//本层次遍历完毕把层级减回来
level--;
}
}
删除目录和目录下所有子目录和文件:
public class FileDemo1 {
public static void main(String[] args) throws IOException {
//创建一个目录对象 路径是要删除的文件夹
File file = new File("C:\\aaa");
deleteFile(file);
}
public static void deleteFile(File file){
if(file == null || !file.exists()){
return;
}
//获得文件对象的子文件对象列表
File[] files = file.listFiles();
//遍历这些子文件
for (File f : files){
//判断这些子文件是否是目录
if(f.isDirectory()){
//是文件夹的话继续递归 如果是发现文件直接删除
deleteFile(f);
}else {
f.delete();
}
}
//删除空文件夹
file.delete();
}
}