package com.overseas.util;
import java.io.File;
/**
* 删除工程文件下的CVS,SVN
* @since 2009-03-28
* @author springmvc2006@sina.com
*
*/
public class RemoveFile {
public static void main(String[] args){
//deleteCVSAndSVNDirectory(new File("d:/workspace2009/work/OOO300_m15"), "CVS");
//deleteCVSAndSVNDirectory(new File("D:/workspace2009/work/ms"), ".svn");
//deleteCVSAndSVNDirectory(new File("D:/workspace2009/Report"), ".svn");
}
/**
* 删除单个文件
* @param sPath 被删除文件的文件名
* @return 单个文件删除成功返回true,否则返回false
*/
public static boolean deleteFile(File file) {
boolean flag = false;
// 路径为文件且不为空则进行删除
if (file.isFile() && file.exists()) {
System.out.println(file.getAbsolutePath());
file.delete();
flag = true;
}
return flag;
}
/**
* 删除指定的目录(文件夹)以及目录下的文件
* @param fileName 被删除文件
* @return 目录删除成功返回true,否则返回false
*/
public static void deleteCVSAndSVNDirectory(File f, String fileName){
if(f.isDirectory()){
File[] tempFiles = f.listFiles();
for(File tempFile:tempFiles){
if(fileName.equals(tempFile.getName()) && tempFile.isDirectory()){
deleteAll(tempFile);
}else{
deleteCVSAndSVNDirectory(tempFile, fileName);
}
}
}
}
/**
* 删除目录(文件夹)以及目录下的文件
* @param dirFile 被删除文件
* @return 目录删除成功返回true,否则返回false
*/
public static boolean deleteAll(File dirFile) {
//如果dir对应的文件不存在,或者不是一个目录,则退出
if (!dirFile.exists() || !dirFile.isDirectory()) {
return false;
}
boolean flag = true;
//删除文件夹下的所有文件(包括子目录)
File[] files = dirFile.listFiles();
for (int i = 0; i < files.length; i++) {
//删除子文件
if (files[i].isFile()) {
flag = deleteFile(files[i]);
if (!flag) break;
} else {
flag = deleteAll(files[i]);
if (!flag){
break;
}
}
}
if (!flag){
return false;
}
//删除当前目录
if (dirFile.delete()) {
System.out.println(dirFile.getAbsolutePath());
return true;
} else {
return false;
}
}
}