java-将任意文件夹下的某一类型的文件复制到指定的文件夹

时间:2022-05-08 09:54:33
public class CopyDemo {
public static void main(String[] args) throws Exception {
File dir = new File("F:/文件夹");
List<File> list1=new ArrayList<>();//装目录下所有文件路径
List<File> list2=new ArrayList<>();//装指定文件路径
getAllFile(dir,list1);

//过滤得到指定文件
for (int i = 0; i < list1.size(); i++) {
if (list1.get(i).getName().endsWith(".xls")||list1.get(i).getName().endsWith(".xlsx")) {
list2.add(list1.get(i));
}
}

//将指定文件复制到指定目录
for (File file : list2) {
Files.copy(Paths.get(file.toURI()),new FileOutputStream("E:/copy/"+file.getName()));
}
}

//列出当前目录所有文件
private static void getAllFile(File f,List<File> list) {
File[] fs = f.listFiles();
for (File file : fs) {
list.add(file);
if (file.isDirectory()) {
getAllFile(file,list);//递归操作
}
}
}
}