您的位置:首页 > 其它

去掉当前目录及其所有子目录下的svn目录

2013-01-10 18:18 507 查看
package com.cai.test;

import java.io.File;
import java.io.FileFilter;

/**
* 去掉当前目录及其所有子目录下的svn目录
*
* @see com.cai.test.去掉svn目录#deleteAllSubFolderByFoldername(File, String)
* @see com.cai.test.去掉svn目录#deleteDir(File)
* @author dalidong2009@163.com
* @date 2013-1-10 18:06:01
*
*/
public class 去掉svn目录 {

private static final String SVN = ".svn";
private static String PARENT_FOLDER_NAME = "D:\\1";;

/**
* 递归删除当前文件夹下所有命名为foldername指定的子文件夹
*
* @param folder
*            当前文件夹
* @param foldername
*/
private static void deleteAllSubFolderByFoldername(File folder,
String foldername) throws Exception {
File[] subFolderList = folder.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.isDirectory();
}
});

if (subFolderList != null && subFolderList.length > 0) {
for (File subFolder : subFolderList) {
if (subFolder.getName().endsWith(foldername)) {
// 递归删除svn目录
boolean results = deleteDir(subFolder);
if (!results) {
throw new Exception("删除\""
+ subFolder.getAbsolutePath() + "\"失败");
}
} else {
// 递归查找svn目录
deleteAllSubFolderByFoldername(subFolder, foldername);
}
}
}
}

/**
* 递归删除目录下的所有文件及子目录下所有文件
*
* @param dir
*            将要删除的文件目录
* @return boolean Returns "true" if all deletions were successful. If a
*         deletion fails, the method stops attempting to delete and returns
*         "false".
*/
private static boolean deleteDir(File dir) {
if (dir.isDirectory()) {
String[] children = dir.list();
// 递归删除目录中的子目录下
for (int i = 0; i < children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
// 目录此时为空,可以删除
return dir.delete();
} else {
// 文件,可以删除
return dir.delete();
}

// return dir.delete();
}

public static void main(String[] args) throws Exception {

// System.out.println(File.separator);

File folder = new File(PARENT_FOLDER_NAME);
deleteAllSubFolderByFoldername(folder, SVN);
// deleteAllSubFolderByFoldername(folder, ACCI);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: