首页 > 代码库 > java利用SuffixFileFilter统计目录下特定后缀名文件的数目

java利用SuffixFileFilter统计目录下特定后缀名文件的数目

/**
 * 文件处理类
 * @author zhangcd
 * @date 2017年1月3日
 */
public class FileUtil {


    /**
     * 得到所有后缀的数目
     * 
     * @param directory 目录
     * @param suffixFilter 后缀
     * @param pageCount 返回结果集限制
     * @return list 集合
     * @throws ArchiveException 
     */
    public static int getSuffixFilesNum(File dirFile, String suffixFilter) {
        int num = 0;
        try {
            File[] tempDirs = dirFile.listFiles(new SuffixFileFilter(suffixFilter));
            if (tempDirs != null && tempDirs.length > 0) {
                num = tempDirs.length;
            }
        } catch (Exception e) {
            logger.error("获取后缀列表异常", e);
        }
        return num;
    }
    
    static class SuffixFileFilter implements FilenameFilter {
        private String suffix;

        public SuffixFileFilter(String suffix) {
            this.suffix = suffix;
        }

        public boolean accept(File dir, String name) {
            return name.endsWith(suffix);
        }
    }

    
       public static void main(String[] args) {
        int doneNum = 0;
        List<String> pathList = FileUtil.listSubDir("D:/cc");
            for (String path : pathList) {
                // "/contentFiles/系统号/当前日期/splitFiles"目录
                String splitFiles = path + File.separator + "splitfiles";
                // splitFiles下所有目录
                List<String> splitFileList = FileUtil.listSubDir(splitFiles);
                // 遍历splitFiles目录
                for (String splitFile : splitFileList) {
                    doneNum += FileUtil.getSuffixFilesNum(new File(splitFile), ".done");
                }
            }
        System.out.println(doneNum);
    }

}

 

java利用SuffixFileFilter统计目录下特定后缀名文件的数目