需求:将文件夹里的第一个文件,命名和文件夹名称相同,其余文件删除。
完整代码:适用于多层文件夹嵌套
import java.io.File;
/**
* @Description
* @Author yz
* @Date 2024/1/4 17:39
**/
public class Demo {
private static String FILE_NAME = "";
private final static String SUFFIX = ".jpg";
public static void main(String[] args) {
renameFileName("D:\\blob\\12");
}
/**
* 将文件夹中的第一个文件命名为文件夹名称,其余文件进行删除,该文件夹中只保留一个文件
*
* @param filePath
*/
private static void renameFileName(String filePath) {
File folder = new File(filePath);
if (!folder.exists()) {
return;
}
if (folder.isDirectory()) {
File[] files = folder.listFiles();
int fileCount = 0;
for (File file : files) {
if (file.isDirectory()) {
FILE_NAME = file.getName();
renameFileName(filePath + "\\" + FILE_NAME);
} else {
if (fileCount == 0) {
String pathName = filePath + '\\' + FILE_NAME + SUFFIX;
System.out.println(pathName);
file.renameTo(new File(pathName));
fileCount++;
} else {
file.deleteOnExit();
}
}
}
}
}
}