当前位置: 代码迷 >> CVS/SVN >> 剔除svn文件夹的程序
  详细解决方案

剔除svn文件夹的程序

热度:8009   发布时间:2013-02-26 00:00:00.0
删除svn文件夹的程序
   我离开上家公司的时候,带走了以前在公司开发用到的文档和工程代码,发现整个一套下来有接近20个G的容量,发现其中很大一部分是svn的版本记录,就是.svn文件夹。因为已经离开了上家公司,所以这些svn版本管理信息就没必要放在那占用空间,上网查询下是否有现成的工具去删除svn文件夹,发现如果是linux的话还好办直接通过控制台shell命令就可以删除,但是windows的话需要改注册表增加一个鼠标右击菜单选项来执行删除操作,因为我们删除svn这种事情很少执行,没必要为了一次删除增加右击菜单选项,而且执行完了还需要删除这个选项,操作比较麻烦,所以自己通过java写了一个删除指定目录下指定文件名的类,发现删除后20g空间变成10g左右,而且执行速度比较快,比我们直接删除还清理垃圾站效率高,所以拿出了给大家分享一下。
java文件如下
package jdj.util;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.util.Properties;public class DeleteSVN {    private static Integer i = 0;	private static String fileName;	private static String deleteFileName;	static{		Properties properties = new Properties();		try {			//从配置文件读取删除路径和删除文件名			String proFileName = DeleteSVN.class.getClassLoader().getResource("delete.properties").getPath();			FileInputStream fis = new FileInputStream(proFileName);			properties.load(fis);			fileName = properties.getProperty("fileName");			deleteFileName = properties.getProperty("deleteFileName");					} catch (IOException e) {			e.printStackTrace();		}	}	/**	 * 用于执行删除文件,递归调用	 * @author jiang	 * 日期: 2011-12-06	 * @param fileName 删除文件的路径	 */	public static void  deleteSvn(String fileName){		File svnFile = new File(fileName);		if(svnFile.isDirectory()){			File[] svnFiles = {};			try {				svnFiles =svnFile.listFiles();			} catch (Exception e) {				System.out.println(svnFile.getPath());			}			if(svnFiles!=null&&svnFiles.length>0){		for(File file:svnFiles){			if(deleteFileName.equals(file.getName())){				deleteSubFiles(file);				boolean flag = file.delete();				if(flag){				synchronized (i) {					i++;					System.out.println("删除文件个数为:"+i+",文件名为:"+file.getPath());				}				}			}			if(file.isDirectory()){				deleteSvn(file.getPath());			}		}			}		}		 	}		public static void  deleteSvn(){		deleteSvn(fileName);	}		/**	 * 用于执行删除文件夹下面的东西,递归调用	 * @author jiang	 * 日期: 2011-12-06	 * @param file 要删除文件	 */	public static void  deleteSubFiles(File file){		for(File subFile:file.listFiles()){			if(!subFile.isDirectory()){				subFile.delete();			}else{				deleteSubFiles(subFile);				subFile.delete();			}		}	}		public static void main(String[] args) {		DeleteSVN.deleteSvn();		System.out.println("删除文件个数为:"+DeleteSVN.i);	}}

delete.properties文件有如下内容
fileName=H:deleteFileName=.svn
  相关解决方案