以前用CVS的时候,一个新的项目需要频繁修改,还有很多文件、包、初始测试文件需要移除,这些对于项目搭建的辅助部分和正式的开发版本是不一样的,应该从DEV Version中移除,然后构建一个Version1的CVS项目。
记得刚开始大家都手动去删除Entries,Repository,Root这些东西,并且项目的任何一个位置都有这烦人的东东,后来我终于受不了,自己写了一个工具类来递归删除它们,重新构建Version1的项目。尽管现在自己开发时都用SVN不用CVS了,还是贴出来共享吧。
记得刚开始大家都手动去删除Entries,Repository,Root这些东西,并且项目的任何一个位置都有这烦人的东东,后来我终于受不了,自己写了一个工具类来递归删除它们,重新构建Version1的项目。尽管现在自己开发时都用SVN不用CVS了,还是贴出来共享吧。
public class DeleteFile {
private static String NODIR = "目录不存在";
private static String NOTARGETDIR = "您指定的目录没有找到CVS文件.";
private static String FAILED = "Delete cvs failed.";
private static String SUCCESS = "Delete cvs successful.";
private static String TARGETDIR = "CVS";
private static String[] targetFiles = new String[] { "Entries","Repository", "Root" };
private int count = 0;
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public static void main(String[] args) {
System.out.println("准备删除 "+args[0]+" 下的CVS文件...");
System.out.println("Starting...");
DeleteFile del = new DeleteFile();
boolean flag = del.deleteDirectory(args[0]);
if(flag && del.getCount()>0){
System.out.println("-----------------------------");
System.out.println(SUCCESS);
System.out.println("共删除文件夹数量:"+del.getCount());
System.out.println("共删除文件数量:"+del.getCount()*3);
}
else if(del.getCount()==0){
System.out.println(NOTARGETDIR);
}
else
System.out.println(FAILED);
System.out.println("The End.");
}
/**删除文件夹*/
public boolean deleteDirectory(String dir) {
File dirFile = new File(dir);
if (!dirFile.exists()) {
System.out.println(NODIR);
return false;
}
boolean flag = true;
File[] files = dirFile.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {
if(isTargetFile(files[i].getName())){
flag = deleteFile(files[i].getAbsolutePath());
if (!flag)
break;
}
}
if (files[i].isDirectory()) {
flag = deleteDirectory(files[i].getAbsolutePath());
if (!flag)
break;
}
}
if(dirFile.getName().equals(TARGETDIR)){
System.out.println("deleting directory: "+dirFile.getAbsolutePath());
count++ ;
flag = dirFile.delete();
}
return flag;
}
/**删除文件*/
public boolean deleteFile(String fileName) {
File file = new File(fileName);
if (!file.exists()) {
System.out.println(NODIR);
return false;
}
else {
System.out.println("deleting file: "+fileName+ "");
return file.delete();
}
}
/**判断是否为目标文件*/
public boolean isTargetFile(String fileName) {
boolean flag = false;
for (int i = 0; i < targetFiles.length; i++) {
if (fileName.startsWith(targetFiles[i])) {
flag = true;
break;
}
}
return flag;
}
}