* 由于 张孝祥-7K月薪面试题破解之一_交通灯管理系统视频教程 文件夹下 的视频文件都存放在每个子文件夹中
* 需求:将所有视频文件全部移动到 张孝祥-7K月薪面试题破解之一_交通灯管理系统视频教程文件夹下 原来存放视频的子文件夹删除
public class moveFiles { public static void main(String[] args) { // TODO Auto-generated method stub File f = new File("D:\\BaiduYunDownload\\张孝祥-7K月薪面试题破解之一_交通灯管理系统视频教程"); // File f = new File("D:\\BaiduYunDownload\\传智播客_张孝祥_Java多线程与并发库高级应用视频教程下载"); if (f.exists()) moveFiles2(f, f.getPath()); System.out.println("done"); } public static void moveFiles(File f, String path) { File[] files = f.listFiles(); String addName = ""; // 先判断 文件夹的名称是否含有"_交通",然后在 获取角标 否则indexOf会返回-1出现substring(-1)出现异常 if (f.getName().contains("_交通")) { int index = f.getName().indexOf("_交通"); // int index = f.getName().indexOf("祥_")+1; addName = f.getName().substring(index); } for (File file : files) { if (file.isDirectory()) moveFiles(file, path); else { if (file.getName().endsWith(".avi")) { File dest = new File(path, file.getName().replace(".", addName + ".")); file.renameTo(dest); System.out.println(dest.getName()); } else file.delete();// 删除多余文件 } file.delete();// 删除空文件夹 } } // 如果需要保留 不包含"_交通"的文件夹的话 代码如下 public static void moveFiles2(File f, String path) { File[] files = f.listFiles(); int index = f.getName().indexOf("_交通"); String addName = f.getName().substring(index); for (File file : files) { System.out.println(file.getName()); if (file.isDirectory()) if (file.getName().contains("_交通"))// 在这里判断的话可以保证 // 除最外层文件外每个f对象都包含"_交通" moveFiles(file, path); else { if (file.getName().endsWith(".avi")) { File dest = new File(path, file.getName().replace(".", addName + ".")); file.renameTo(dest); // System.out.println("生成:"+dest.getName()); } else { System.out.println(file.delete() + "..删除的文件是." + file.getName());// 删除多余文件 } } // 删除空文件夹 当且仅当成功删除文件或目录时,返回true;否则返回false System.out.println(file.delete() + ",,删除的文件夹是:" + file.getName()); } } }
File类——renameTo()将文件夹内的所有指定类型文件 移动到另一个文件夹内
时间: 2024-10-14 23:48:18