zoukankan      html  css  js  c++  java
  • 遍历指定文件夹下的所有图片,并复制到指定目录下

    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();
                        }
                    }
                }
            }
        }
        
        
    }
  • 相关阅读:
    计算机基础理论 基本功
    mac 下使用gcc 编译c函数
    技术书籍 读书方法有感
    IntentFilter的相关问题解析
    IOS 学习笔记 2015-04-03 OC-API-文件读写
    (转)iOS中3种正则表达式的使用与比较
    (转)IOS学习笔记-2015-03-29 int、long、long long取值范围
    mysql 游标
    (转) 生活感悟
    IOS 学习笔记 2015-03-27 我理解的OC-代理模式
  • 原文地址:https://www.cnblogs.com/hefeisf/p/4934691.html
Copyright © 2011-2022 走看看