清空指定目录下指定后缀名的所有文件

通过Maven远程下载jar时,总出现下载到.jar.lastUpdated后缀的文件,正常的jar包就下载不了,只能将其删除再次下载,循环操作直到将jar文件下载下来.

以下给出一个能完成删除指定目录下指定后缀名的文件

import java.io.File;
import java.io.FilenameFilter;

import org.apache.commons.io.filefilter.FileFilterUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * 清除除maven下载jar包时错误下载的.jar.lastUpdated文件
 * @author Administrator
 *
 */
public class DelLastUpdated {
	//指定要进行清除的根目录
    private static final String MAVEN_REPO_PATH = "D:\\maven-repository\\org\\eclipse\\birt\\runtime";
    //要清除文件的后缀后
    private static final String FILE_SUFFIX = "lastUpdated"; 
    private static final Log _log = LogFactory.getLog(DelLastUpdated.class); 
 
    /** 
     * @param args 
     */ 
    public static void main(String[] args) { 
        File mavenRep = new File(MAVEN_REPO_PATH); 
        if (!mavenRep.exists()) { 
            _log.warn("Maven repos is not exist."); 
            return; 
        } 
        File[] files = mavenRep.listFiles((FilenameFilter) FileFilterUtils.directoryFileFilter()); 
        delFileRecr(files,null); 
        _log.info("Clean lastUpdated files finished."); 
    } 
 
    private static void delFileRecr(File[] dirs, File[] files) { 
        if (dirs != null && dirs.length > 0) { 
            for(File dir: dirs){
            	//列出dir目录下的子目录
                File[] childDir = dir.listFiles((FilenameFilter) FileFilterUtils.directoryFileFilter()); 
                //列出dir目录下后缀为FIlE_SUFFIX的文件
                File[] childFiles = dir.listFiles((FilenameFilter) FileFilterUtils.suffixFileFilter(FILE_SUFFIX)); 
                delFileRecr(childDir,childFiles); 
            } 
        }
        // 删除符合指定后缀的文件
        if(files!=null&&files.length>0){ 
            for(File file: files){ 
                if(file.delete()){ 
                    _log.info("File: ["+file.getName()+"] has been deleted."); 
                } 
            } 
        } 
    }

}

 

你可能感兴趣的:(清空指定目录下指定后缀名的所有文件)