删除.svn版本信息 java 类实现

来源:互联网 发布:java工程师考试报名 编辑:程序博客网 时间:2024/05/22 03:37
 
需要commons-io-2.0.1.jar包
 
 
 
package demo.wc.demo2;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.Collection;import java.util.List;import org.apache.commons.io.DirectoryWalker;@SuppressWarnings("rawtypes")public class FileCleaner extends DirectoryWalker {public FileCleaner() {super();System.out.println("-------开始清除-------2");}public List<File> clean(File startDirectory) throws IOException {List<File> results = new ArrayList<File>();walk(startDirectory, results);System.out.println("-------开始清除-------3");return results;}@Overrideprotected void handleStart(File startDirectory, Collection results)throws IOException {System.out.println("-------开始清除-------1");}@Overrideprotected void handleEnd(Collection results) throws IOException {System.out.println("-------结束清除-------11");}@Overrideprotected void handleCancelled(File startDirectory, Collection results,CancelException cancel) throws IOException {System.out.println("-------清除异常-------0");super.handleCancelled(startDirectory, results, cancel);}@Overrideprotected boolean handleIsCancelled(File file, int depth, Collection results)throws IOException {// 这里可以设置断点,比如当你找到某个类的时候,停止遍历,默认继续System.out.println("-------开始清除-------4");return false;}@Overrideprotected void handleDirectoryStart(File directory, int depth,Collection results) throws IOException { System.out.println("****开始处理:"+directory.getName()+"deep:"+depth+"results:"+results.toString());System.out.println("-------开始清除-------5");}@Overrideprotected void handleDirectoryEnd(File directory, int depth,Collection results) throws IOException { System.out.println("****结束处理:"+directory.getName()+"deep:"+depth+"results:"+results.toString());System.out.println("-------开始清除-------6");}@Overrideprotected void handleRestricted(File directory, int depth,Collection results) throws IOException {System.out.println("****受限制目录:" + directory.getName() + "deep:" + depth+ "results:" + results.toString());System.out.println("-------开始清除-------7");}/** * 是否处理某个目录.返回false 不处理 *  * @see 这里直接删除.svn.然后不处理. */@Overrideprotected boolean handleDirectory(File directory, int depth,Collection results) {// delete svn directories and then skipSystem.out.println("-------开始清除-------8");if (".svn".equals(directory.getName())) {deleteDirectory(directory, results);return false;} else {results.add(directory);// 删除.svn,还有哪些文件夹return true;}}/** * 删除文件,并把文件加到删除列表中 */@Overrideprotected void handleFile(File file, int depth, Collection results) {// delete file and add to list of deleted// file.delete();// results.add(file);// 删除.svn文件后,还有哪些文件System.out.println("-------开始清除-------9");}/** * 删除目录及目录下的文件夹和文件 *  * @param directory * @param results */private void deleteDirectory(File directory, Collection results) {if (directory.isDirectory()) {File[] list = directory.listFiles();for (File file : list) {deleteDirectory(file, results);}}Log(directory.delete(), directory);results.add(directory);// 删除文件System.out.println("-------开始清除-------11");}/** * 删除文件或者目录失败日志 *  * @param flag */private void Log(boolean flag, File directory) {if (!flag) {System.err.println("删除文件失败:" + directory.getAbsolutePath());} else {System.out.println("delete:" + directory.getAbsolutePath());}System.out.println("-------开始清除-------12");}/** *  */public static void main(String[] args) throws IOException {// TODO Auto-generated method stubFileCleaner cleaner = new FileCleaner();//D:\MyWorkingCopy//D:\\workspace\\branches\\pamirsshop_branches_8-30File startDirectory = new File("D:\\MyWorkingCopy");List<File> list = cleaner.clean(startDirectory);for(File file:list){//System.out.println("file:"+file.getAbsolutePath());}System.out.println("共处理"+list.size()+"个文件");}}

0 0