
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class DeleteLongNameFile {
private static String directoryPath = "所要删除的文件路径";
private static List absolutePathList = new ArrayList<>();
public static void main(String[] args){
deleteFiles();
}
public static void getAllFile(String directoryPath){
File directory = new File(directoryPath);
for(File file : directory.listFiles()){
String absolutePath = file.getAbsolutePath();
System.out.println(absolutePath);
absolutePathList.add(absolutePath);
if(file.isDirectory()){
getAllFile(absolutePath);
}
}
}
public static void deleteFiles(){
getAllFile(directoryPath);
// 从路径最长的文件开始删
Collections.reverse(absolutePathList);
for(String absolutePath : absolutePathList){
File file = new File(absolutePath);
file.delete();
}
// 删除层层子文件后,才能删除根文件
File file = new File(directoryPath);
if(file.delete()){
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
}
}
如果程序显示删除成功,但文件夹还在,双击提示文件已移动或删除,无法打开,重启系统即可。