需求:遍历文件夹中的所有文件,将文件夹中的视频文件提取出来存入另一个文件夹中
方法:遍历文件夹,获取文件后缀名进行操作。
重点:
利用 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); } } } } } }