移动文件夹中特定后缀名的文件到一个目录下面
程序员文章站
2022-07-11 09:43:01
...
代码:
public class Test {
public static void main(String[] args) {
// 文件后缀名
String suffix = "htm";
// 存储被移动文件的目录
File from = new File("C:\\download\\百度网盘\\fileoperator");
// 移动到哪个目录
File to = new File("C:\\download\\百度网盘\\hj");
// 判断被移动目录是否存在
if (!(from.exists() && from.isDirectory())) {
System.out.println("注意:" + from.getAbsolutePath() + "目录必须存在");
}
// 如果移动目标目录不存在,那就创建一个
if (!to.exists()) {
to.mkdirs();
}
// 开始移动
move(from, to, suffix);
// 移动完成提示
System.out.println("移动完成!!!");
}
// 文件移动方法
private static void move(File from, File to, String suffix) {
// 对目录和文件进行分开处理
if (from.isDirectory()) {
// 对目录下面的文件/文件夹进行遍历
for (File file : from.listFiles()) {
move(file, to, suffix);
}
} else {
// 如果是文件,那就判断文件后缀名是否符合要求
if (from.getName().endsWith(suffix)) {
from.renameTo(new File(to.getAbsolutePath() + "/" + from.getName()));
}
}
}
}
解释:
我写上面的代码不是空穴来风,而是我在项目开发中用到了,其中场景是这样的,我需要将多个文件夹中以htm结尾的网页文件放在一个目录下面,这个目录是给其他程序访问的,但是装载网页图片的文件夹中有的里面还有文件夹,有的里面直接就是网页文件,另外文件夹里面还有以txt结尾的文件,但是我只需要复制以htm结尾的文件就可以,而每个文件夹中有20~30万个网页文件,当我使用Ctrl+C或者Ctrl+X的时候发现复制的速度太小了,应该就是网页文件数量太多,然而机器性能又比较第,所以我只能使用上述代码来解决该问题
推荐阅读
-
Python_WIN10系统中递归所有文件夹所有文件_移动所有文件到主目录(使用到的库:os + glob + shutil)
-
python移动文件:将一个文件夹中的特定后缀名的图片移动到另一个文件夹
-
键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集
-
键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集
-
移动文件夹中特定后缀名的文件到一个目录下面