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

来源:互联网 发布:淘宝客服工作制度 编辑:程序博客网 时间:2024/04/30 05:00
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() {@Overridepublic 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);}}