Java - 递归所有日志文件

需求,递归输出某个目录下的所有日志文件,我们可以使用commons-io进行处理,避免重复造轮子。

使用

依赖

compile group: 'commons-io', name: 'commons-io', version: '2.6'

测试

    @Test
    public void testFilters(){
        String outFilePath = "./logdir2";
        String fileFilters[] = {".log"};
        IOFileFilter[] ioFileFilters = new IOFileFilter[fileFilters.length];
        for (int i = 0; i < fileFilters.length; i++) {
            ioFileFilters[i] = FileFilterUtils.suffixFileFilter(fileFilters[i]);
        }
        File file = new File(outFilePath);

        if (file.isDirectory()) {
            IOFileFilter foldFilter = FileFilterUtils.and(
                    FileFilterUtils.directoryFileFilter(),
                    HiddenFileFilter.VISIBLE);
            IOFileFilter fileFilter = FileFilterUtils.and(ioFileFilters);
            Collection logFiles = FileUtils.listFiles(file, fileFilter, foldFilter);

            for (File file1 : logFiles) {
                System.out.println(file1.getName());
            }
        }
    }

你可能感兴趣的:(Java - 递归所有日志文件)