路径名过长无法删除的解决办法

自己做得资源管理器,父目录复制到子目录的时候,没加判断,于是就一直递归的创建了几百个文件夹,路径过长,利用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);
	}
}



希望对大家有用


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值