递归删除文件夹下的文件以及文件夹

    项目要求,添加方案时在某一共享路径中要生成一个shape文件,当然在删除该方案时,也要删除这个shape文件。因为shape文件并不是一个,而是好多个文件放在文件夹内,所以需要递归删除,废话不多说,直接上代码了。

 

    因为项目性能要求,删除方案时反应要快,但是删除共享路径中的shape文件大概需要2秒左右的样子,所以就放在了一个线程中。

 

 

public Class DeleteShpThread(){

	String sPath;
	
	public DeleteShpThread(String sPath){
		this.sPath = sPath;
	}
	
	public void run(String sPath){
		File file = new File(sPath);
		if(file.isFile()){
			deleteFile(sPath);
		}else if(file.isDirectory()){
			deleteDirectory(sPath);
		}
	}
	
	public void deleteDirectory(String sPath){
		//如果sPath不以文件分隔符结尾,自动添加文件分隔符
		if(!sPath.endsWith(File.separator)){
			sPath = sPath + File.separator;
		}
		
		File dirFile = new File(sPath);
		//如果dirFile对应的文件存在,而且是一个目录
		if(dirFile.exists() && dirFile.isDirectory){
			File[] files = dirFile.listFiles();
			for(int i = 0;i < files.length; i++){
				//删除子文件
				if(files[i].isFile){
					deleteFile(files[i].getAbsolutePath());
				}else{
					deleteDirectory(files[i].getAbsolutePath());
				}
				
				//删除当前目录
				dirFile.delete();
			}
		}
	}

	public void deleteFile(String sPath){
		File file = new File(sPath);
		//路径为文件且不为空
		if(file.isFile() && file.exists()){
			file.delete();
		}
	}
}

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值