场景
话不多说,直接上图.
不难看出,如果这是一个班级的同学所有文件夹,现在我需要将他们上传的视频作业汇集到一个文件夹里面,那我需要一个个点进去剪切,这很显然就很瓜皮。 这时候一串简单的代码就可以解决这个问题。
代码
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 ,直接上图
-
输入注册码完成之后:
-
第一步
-
第二步
-
第三步
注意一下高级选项里面的32-bit or 64-bit
,你电脑是64位的需要把里面那个东西勾上,一般自动勾上的,注意一下,防止抽风。 -
第四步
这里也得注意,如果你在项目中使用了例如commons-lang
之类的第三方jar,需要一起在这里引入哦。
- 第五步:这里就是填一下你的jre版本,我用的1.8
- 第六步
一路next
,完结。 然后去你前面填的地址,找到exe文件即可。
双击运行,虽然啥也没有,但是你会看到 同目录下多出了niubi
文件夹,这就代表,该目录下所有文件夹内的视频文件都被移动到了niubi
文件夹下。
我的效果图就是最上面那张图。