递归调用删除项目中的svn文件夹

 

 今天项目中用到了svn,所以里面有很多svn文件夹和文件,我想去掉svn文件作为单独的项目,但是项目很大,里面有很多svn文件和文件夹,所以我想了一个办法来解决这个问题,代码如下:

package com.yxfei.test;

import java.io.File;
import java.util.List;

public class testFile {
	
	/**
	 * 删除文件夹里所有为filename的文件夹
	 * @param file 指定的文件夹名
	 * @param filename 需要删除的文件名
	 */
	public void deleteFile(File file,String filename)
	{
		File[] list = file.listFiles();//得到文件夹中所有文件
		//判断文件夹里是否有文件,没有就可以删除当前文件夹
		if(list.length==0)
			file.delete();
		
		for(int i=0;i<list.length;i++)
		{
			String name = list[i].getName();//得到文件名
			if(name.equals(filename))//判断文件夹名是否为需要删除的文件夹名
			{
				File f = new File(list[i].getAbsolutePath());//得到文件夹的实际路径
				System.out.println(list[i].getAbsolutePath());
				f.delete();
				if(f.exists())//判断文件是否被删除
					deleteAll(f);//删除所有文件
			}
			else
			{
				if(!list[i].isFile())//是否为文件夹
				deleteFile(list[i],filename);
			}
		}
	}
	/**
	 * 删除file文件夹中所有文件,包括它自己
	 * @param file
	 */
	public void deleteAll(File file)
	{
		File[] list = file.listFiles();
		if(list.length==0)//判断是否有子文件或文件夹
			file.delete();
		for(int i=0;i<list.length;i++)
		{
			list[i].delete();
			if(list[i].exists())//判断文件夹是否还有子文件或文件夹
			{
				File f = list[i].getAbsoluteFile();
				deleteAll(f);//递归删除文件夹或文件
			}
		}
		if(list.length==0)//再次判断是否有子文件或文件夹
			file.delete();
		
	}
	
	public static void main(String[] args) {
		
		//删除项目工程中所有为.svn的文件夹
		File file = new File("d:\\workspace\\zcgl");
		System.out.println(file.isFile());
		new testFile().deleteFile(file,".svn");
	}
}


很好的解决了svn文件的问题,我都觉得很好,值得拿到博客里分享一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值