Java 列出文件夹下所有文件,符合条件的文件复制到指定目录

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class TestFile {
	public static void main(String[] args){
	    File file = new File("D:\\oldDir");
	    listDir(file);	//列出当前路径下的所有文件以及文件夹路径
	}

    /**
     * 列出当前路径下的所有文件路径
     * @param file
     */
    public static void listDir(File file){
        String newPath = "D:\\newDir";
        if(file.isDirectory()){	 // 是一个目录
            // 列出目录中的全部内容
            File results[] = file.listFiles();
            if(results != null){
                for(int i=0;i<results.length;i++){
                    listDir(results[i]);	// 继续一次判断
                }
            }
        }else{	// 是文件
            String fileStr = (file.getName()).toString();
            String fileFormat = "JPG,PNG,MP4";
            String suffixStr = "";
            if(null != fileStr && !"".equals(fileStr)){
                suffixStr = fileStr.substring(fileStr.lastIndexOf(".")+1,
                        fileStr.length());
                if(fileFormat.indexOf(suffixStr.toUpperCase()) != -1){
                    newPath = newPath + "/" + fileStr;
                    copyFile(file,newPath);
                }
            }
        }
        //file.delete(); //删除!!!!! 根目录,慎操作
        //获取完整路径
        System.out.println(file);
    }

	/**
	 * 拷贝文件到指定目录
	 * @param oldFile
	 * @param newPath
	 */
    public static void copyFile(File oldFile, String newPath){
        try{
            if (oldFile.isFile()) {
                FileInputStream input = new FileInputStream(oldFile);
                FileOutputStream output = new FileOutputStream(newPath);
                byte[] b = new byte[1024 * 5];
                int len;
                while ((len = input.read(b)) != -1) {
                    output.write(b, 0, len);
                }
                output.flush();
                output.close();
                input.close();
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

猜你喜欢

转载自blog.csdn.net/llag_haveboy/article/details/84780836