class RemoveFilesTest {
// 从子目录提取所有文件至根目录
public static void main(String[] args) {
// 首先保证根目录
File rootDirectory = new File("C:\Users\Bxeg\Desktop\targetFile");
if (rootDirectory.isDirectory()) {
System.out.println("选择的根目录为:" + rootDirectory.toPath());
} else {
System.out.println("此抽象路径不为目录");
}
// 检索根目录
File[] rootAllFileLists = rootDirectory.listFiles();
// 假定子层级只有1
for (int i = 0; i < rootAllFileLists.length; i++) {
File f = rootAllFileLists[i];
// 如果此路径为目录,获取其文件列表
// 也就是说本来就在根目录的文件不需要移动
if (f.isDirectory()) {
File[] subDirectory = f.listFiles();
// 文件夹不为空时
if (subDirectory != null) {
// 遍历文件并移动
for (File sf : subDirectory) {
myRename(sf);
// 结尾必须带\不然会贴在文件夹名上
// 而且直接在file声明不起效
sf.renameTo(new File(rootDirectory.getPath() + "\" + myRename(sf)));
System.out.println("已移动" + sf.getName());
System.out.println("至目录" + rootDirectory);
}
}
}
}
}
// 顺带改个名
static String myRename(File f) {
String name = f.getName();
String target = "targetFile";
if (name.contains(target)) {
name = name.substring(target.length(), name.length());
}
// System.out.println(name);
return name;
}
}
对应目录结构



