遍历指定文件夹下的所有图片,并复制到指定目录下

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();
                    }
                }
            }
        }
    }
    
    
}

 

posted @ 2015-11-03 23:09  绯云  阅读(1818)  评论(0编辑  收藏  举报