现在的位置: 首页 > 综合 > 正文

清理文件夹里的svn标记

2017年10月21日 ⁄ 综合 ⁄ 共 1321字 ⁄ 字号 评论关闭

有时我们想清理svn工程流下来的标记,其实只要删掉每个文件夹里面的.svn文件就可以,不过工作太繁琐,就交给程序来处理,遍历一遍文件夹,清理掉.svn。


package tool;

import java.io.*;

/**
 * 清理svn
 * @author Administrator
 *
 */
public class FilterSVN {
	/**
	 * 删除文件夹,需要先删除文件夹里面的内容
	 * @param dir
	 */
	public static void deleteFolder(String dir){
		File folder=new File(dir);
		if(folder.isDirectory()==false){
			System.err.println(dir+" is not a folder!");
		}else{
			String[] files=folder.list();
			for(int i=0;i<files.length;i++){
				File child=new File(dir+"/"+files[i]);
				if(child.isDirectory()){
					deleteFolder(dir+"/"+files[i]);
				}else{
					child.delete();
				}
			}
			folder.delete();
		}
	}
	
	public static void checkFileFolder(String dir){
		File handle=new File(dir);
		if(handle.exists()!=false){
			if(handle.isDirectory()==true){
				String[] files=handle.list();
				for(int i=0;i<files.length;i++){
					//删除svn文件
					if(files[i].equals(".svn")){
						System.out.println("svn:    "+files[i]);
						String fileName=dir+"/"+files[i];
						deleteFolder(fileName);
//						if(fileSVN.delete()==false)
//							System.out.println("delete "+fileName +" failed");
//						else
//							System.out.println("delete succeed");
					}
					else{
						String fileName=dir+"/"+files[i];
						File fileChild=new File(fileName);
						if(fileChild.isDirectory()){
							System.out.println("folder:    "+fileName);
							checkFileFolder(fileName);
						}else{
							System.out.println(fileName);
						}
					}
				}
			}
		}
		return;
	}
	
	public static void main(String[] args){
		if(args.length!=1){
			System.out.println("usage: filterSVN.jar fileFolder");
		}
		else{
			FilterSVN.checkFileFolder(args[0]);	
		}
	}
}

抱歉!评论已关闭.