遍历指定文件夹下的所有图片,并复制到指定目录下
import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.imageio.ImageIO; public class Copy { /** * 遍历文件夹下的所有图片文件,并复制到指定文件夹下 */ static String srcfile = "E:/Images/照相摄像";//源目录 static String filetype = ".jpg";//关键字 static List<File> flist = new ArrayList();//存放遍历的文件 public static void main(String[] args) { File file = new File(srcfile); File[] list =file.listFiles();//源文件夹 List<File> flist1 = new ArrayList(); for(int i=0;i<list.length;i++){ flist1.add(list[i]); } searchDirectory(flist1); wFile(flist,filetype); System.out.println("复制完成"); } public static void searchDirectory(List<File> list){ List<File> dlist0 = new ArrayList();//一级目录 List<File> dlist1 = new ArrayList();//一级目录下的子目录 //遍历的文件夹,将文件和文件夹分类 for(File file: list){ if(file.isDirectory()){ dlist0.add(file); }else{ flist.add(file);//文件存放到文件list中 } } /** * 遍历子文件夹 * 递归调用该方法,把目录和文件分开 * */ if(dlist0.size()>0||!dlist0.isEmpty()){ for(int i=0;i<dlist0.size();i++){ File[] list0 = dlist0.get(i).listFiles(); for(int j=0;j<list0.length;j++){ dlist1.add(list0[j]); } } searchDirectory(dlist1); } return ; } //读写文件 public static void wFile(List<File> flist,String filetype){ for(File file :flist){ if(file.isFile()){ //包含关键字 if(file.toString().toLowerCase().contains(filetype.toLowerCase())){ //把文件写到指定 的文件夹中 try { BufferedImage image = ImageIO.read(new File(file.toString())); //指定要复制的路径 ImageIO.write(image, "jpg", new File("G:/images/"+file.getName()+".jpg")); } catch (IOException e) { e.printStackTrace(); } } } } } }