自己做得资源管理器,父目录复制到子目录的时候,没加判断,于是就一直递归的创建了几百个文件夹,路径过长,利用windows的资源管理器无法删除,只能剪出来一部分,分割他的路径长度。所以就做了下面一个简单的小程序去执行,把文件夹都给剪出来到指定文件夹中,最后再批量删除就可以搞定了。
import java.io.File;
public class DeleteLongFolder {
public static int length;
public static String path = "E:\\test2";//取出来的文件夹的存放位置
public static void main(String[] args) {
File file = new File("E:\\test"/*路径过长的文件夹*/);
aa(file);
File [] delete_list = new File(path).listFiles();
for(int i = 0; i < delete_list.length; i ++) {
delete_list[i].delete();
}
}
public static void aa(File file){
/*-------如果不包含文件可以注掉--------*/
//如果是文件直接删除
/* if(file.isFile()) {
file.delete();
return;
}*/
File[] listFile = file.listFiles();
//如果到底的话,挪到指定的目录中
//否则的话,继续递归调用往里面进
if (listFile.length == 0) {
File tofile = new File(path, (length) + "");
length++;
file.renameTo(tofile);
return;
} else {
for (File file2 : listFile) {
aa(file2);
}
}
/**
* 递归往外出的时候挪出目录
*/
length++;
File tofile = new File(path, (length) + "");
file.renameTo(tofile);
}
}
希望对大家有用