Java遍历文件夹所有文件并将不同类型的文件剪切到另一个文件夹中

时间:2021-12-17 05:49:16

需求:遍历文件夹中的所有文件,将文件夹中的视频文件提取出来存入另一个文件夹中

方法:遍历文件夹,获取文件后缀名进行操作。

重点:

利用 apache.commons.io.FileUtils 中的文件操作,方便快速

import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import java.io.*;
/**  * @author wwd8678  * @date 2018/5/23  */ public class ClassifyforName {
    /**  * FILE_PATH 需分类文件的目录  */  private static final String FILE_PATH = PropertiesUtils.getProperty("file_path");
    public static void main(String args[]) throws IOException {
        File[] file = (new File(FILE_PATH)).listFiles();
        System.out.println("开始遍历文件夹 " + FILE_PATH);
        for (File fe : file) {
            System.out.println("-----------------------------------");
            showDirectory(fe.getAbsolutePath());
        }
    }
    public static void showDirectory(String path) throws IOException {
        File file = new File(path);
        File[] files = file.listFiles();
        for (File fs : files) {
            if (fs.isFile()) {
                System.out.println(fs.getName());
                //判断文件是否为MP4格式  if (fs.getName().endsWith(".mp4")) {
                    System.out.println("mp4 " + fs.getName());
                    //获取路径  String outPath = StringUtils.substringBeforeLast(fs.getPath(),File.separator);
                    System.out.println(outPath+"_video"+ File.separator + fs.getName());
                    if(!outPath.contains("video")){
                        //利用apache.commons.io.FileUtils的方法直接拷贝文件,文件名为源文件的名称后加“_video”  FileUtils.copyFile(fs, new File(outPath+"_video"+ File.separator + fs.getName()));
                        //删除源文件中的文件  FileUtils.deleteQuietly(fs);
                    }
                }
            }
        }
    }
}