【JAVA】将分散于多个文件夹的文件汇集于同一个文件

2021/6/6 20:28:55

本文主要是介绍【JAVA】将分散于多个文件夹的文件汇集于同一个文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

场景

话不多说,直接上图.
在这里插入图片描述
不难看出,如果这是一个班级的同学所有文件夹,现在我需要将他们上传的视频作业汇集到一个文件夹里面,那我需要一个个点进去剪切,这很显然就很瓜皮。 这时候一串简单的代码就可以解决这个问题。

代码

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;

public class MoveFile {
    public static void main(String[] args) {
        //这里是你想放文件的位置,例如:String targetPath = "E:\\haha\\hasd";
        //这里这么写是为了后面做exe文件。
        String targetPath = new File(System.getProperty("user.dir"))
                + File.separator + "niubi";
        File targetDictionary = new File(targetPath);
        if (!targetDictionary.exists()) {
            boolean mkdirs = targetDictionary.mkdirs();
            if (!mkdirs) {
                System.out.println("创建新文件失败!");
            }
        }
        Path newPath = Paths.get(targetPath);
        List<String> list = loopReadFile(new File(System.getProperty("user.dir")));
        for (String oldString : list) {
            Path oldPath = Paths.get(oldString);
            try {
                Files.move(oldPath, newPath.resolve(oldPath.getFileName()), REPLACE_EXISTING);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 读取视频文件,统一放入一个文件夹
     */
    public static List<String> loopReadFile(File item) {
        List<String> backResult = new ArrayList<>();
        if (item.isDirectory()) {
            File[] files = item.listFiles();
            assert files != null;
            for (File f : files) {
                backResult.addAll(loopReadFile(f));
            }
        } else {
            if (item.getName().endsWith(".mp4") || item.getName().endsWith(".mkv")
                    || item.getName().endsWith(".TS") || item.getName().endsWith(".ts")
                    || item.getName().endsWith(".avi") || item.getName().endsWith(".rmvb")
                    || item.getName().endsWith(".wmv") || item.getName().endsWith(".MPEG")
                    || item.getName().endsWith(".mov") || item.getName().endsWith(".flv")) {
                backResult.add(item.getAbsolutePath());
            }
        }
        return backResult;
    }
}

如果你只是单纯的想要运行程序来移动文件夹,那么这样按照你的需求修改目标路径文件所在路径以及你想移动的文件类型之后直接运行程序就ok了。

但是为了移动个文件,我还得打开IDEA?有这时间我干啥不香?

所以接下来,将这个程序做成.exe文件,随用随点。

将jar制作成exe

PS:我的项目是maven项目,所以我打jar,只需如下命令

mvn clean package -DskipTests

命令运行完后,jar会出现在target下面。

开始做jar

需要用一个工具: exe4j
下载地址: 官网

安装好之后,注册码填一下吧,我找了几个,先存着:

用户名和公司名可随便填 
A-XVK258563F-1p4lv7mg7sav 
A-XVK209982F-1y0i3h4ywx2h1 

不能用就百度,肯定有能用的。

操作开始,不多BB ,直接上图

  1. 输入注册码完成之后:在这里插入图片描述

  2. 第一步
    在这里插入图片描述

  3. 第二步
    在这里插入图片描述

  4. 第三步
    在这里插入图片描述
    注意一下高级选项里面的32-bit or 64-bit ,你电脑是64位的需要把里面那个东西勾上,一般自动勾上的,注意一下,防止抽风。

  5. 第四步
    在这里插入图片描述

这里也得注意,如果你在项目中使用了例如commons-lang之类的第三方jar,需要一起在这里引入哦。

  1. 第五步:这里就是填一下你的jre版本,我用的1.8
    在这里插入图片描述
  2. 第六步
    一路 next ,完结。 然后去你前面填的地址,找到exe文件即可。
    双击运行,虽然啥也没有,但是你会看到 同目录下多出了 niubi文件夹,这就代表,该目录下所有文件夹内的视频文件都被移动到了niubi文件夹下。
    我的效果图就是最上面那张图。


这篇关于【JAVA】将分散于多个文件夹的文件汇集于同一个文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程