当前位置: 代码迷 >> 综合 >> Java 使用递归遍历、删除、搜索某目录下文件
  详细解决方案

Java 使用递归遍历、删除、搜索某目录下文件

热度:80   发布时间:2023-10-20 23:17:06.0

1、使用递归遍历D:\a目录下所有的文件或文件夹

package cn.itsqq.main;import java.io.File;/*** 递归遍历目录名称*/
public class Demo6 {public static void main(String[] args) {File file=new File("D:\\a");getAllFileName(file);}public static void getAllFileName(File file){System.out.println("A==="+file.toString());File[] files = file.listFiles();for (File f1 : files) {if(f1.isDirectory()){getAllFileName(f1);//递归}else {System.out.println(f1);}}}
}

2、使用递归删除D:\a目录下所有的文件或文件夹

package cn.itsqq.main;
import java.io.File;
/*** 递归删除目录名称*/
public class Demo6 {public static void main(String[] args) {File file=new File("D:\\a");getAllFileName(file);}public static void getAllFileName(File file){File[] files = file.listFiles();for (File f1 : files) {if(f1.isDirectory()){getAllFileName(f1);//递归f1.delete();//递归到最后为空然后删除空文件夹}else {f1.delete();}}}
}

3、使用递归搜索D:\a目录下指定的文件或文件夹

package cn.itsqq.main;
import java.io.File;
/*** 搜索文件*/
public class Demo7 {public static void main(String[] args) {getAllDir(new File("D:\\a"),".java");//搜索以“.java”后缀结尾的文件}/*** @param file 文件* @param str 结尾标志*/public static void getAllDir(File file,String str){//System.out.println(file);File[] files = file.listFiles();for (File f1 : files) {if(f1.isDirectory()){getAllDir(f1,str);}else {String name = f1.getName();//获取文件名name = name.toLowerCase();//不区分大小写boolean b1 = name.endsWith(str);//判断文件结尾是否是strif(b1){System.out.println(f1);//如果文件结尾是str则打印输出}}}}
}