Java 实现批量转移某文件夹下指定后缀的文件到指定文件夹中,并删除源文件夹

    xiaoxiao2024-12-18  12

    适用于某文件夹下有大量相同后缀的文件,仅保留指定后缀文件的场景,也可以结合实际情况进行代码变动 比如说:在电脑上下载的某站视频,就可以采用这种方式

    /** * 批量转移某文件夹下指定后缀的文件到指定文件夹中,并删除源文件夹 * * @author MoCha * @date 2019/5/26 */ public class FileDemo { /** * 源文件夹路径 */ private static final String SOURCE_FILE_PATH = "F:\\程序设计资料\\45084065"; /** * 目标文件夹路径(没有会自动创建) */ private static final String TARGET_FILE_PATH = "F:\\程序设计资料\\Spring Cloud Alibaba 系列教程\\"; private static final String SUFFIX = ".flv"; public static void main(String[] args) { File sourceFile = new File(SOURCE_FILE_PATH); File targetFile = new File(TARGET_FILE_PATH); if (!targetFile.exists()) { targetFile.mkdir(); } moveFile(sourceFile); sourceFile.delete(); } /** * 移动指定后缀文件到指定文件夹中 * * @param sourceFile 包含需要移动文件的文件夹对象 */ private static void moveFile(File sourceFile) { File[] fileArray = sourceFile.listFiles(); for (File file : fileArray) { if (file.isDirectory()) { // 如果当前file对象为目录则继续递归遍历该file对象 moveFile(file); } else { if (file.getName().endsWith(SUFFIX)) { File targetFile = new File(TARGET_FILE_PATH + file.getName()); if (targetFile.exists()) { System.out.println("文件已存在"); } else { file.renameTo(targetFile); System.out.println("移动文件成功"); } } else { file.delete(); } } file.delete(); } } }

    使用commons-io中FileUtils实现快速复制

    引入依赖

    <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> /** * 文件拷贝 * * @author MoCha * @date 2019/8/26 */ public class FileCopyDemo { /** * 源文件夹路径 */ private static final String SOURCE_FILE_PATH = "F:\\我的\\MoCha"; /** * 目标文件夹路径(没有会自动创建) */ private static final String TARGET_FILE_PATH = "F:\\我的\\测试\\"; public static void main(String[] args) throws IOException { File sourceFile = new File(SOURCE_FILE_PATH); File targetFile = new File(TARGET_FILE_PATH); // 只复制".txt"为后缀的文件 FileUtils.copyDirectory(sourceFile, targetFile, new SuffixFileFilter(".txt")); } }
    最新回复(0)