All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.sinjar.common.util.io.FileSystemUtils Maven / Gradle / Ivy

There is a newer version: 1.3
Show newest version
package com.github.sinjar.common.util.io;

import com.github.sinjar.common.base.FileDisposer;
import lombok.extern.slf4j.Slf4j;

import java.io.File;
import java.io.FileFilter;

/**
 * Description : 
 *
 * @author CPF
 * Date: 2020/5/12 17:28
 */
@Slf4j
public class FileSystemUtils {

    private FileSystemUtils(){}

    /**
     * 文件夹递归处理
     * 如果 file 不能通过 fileFilter 过滤条件, 则直接返回.
     * 如果 file 是一个文件, 则执行 fileDisposer 处理方法.
     * 如果 file 是一个文件夹, 则对文件夹中的每个子文件夹和文件递归调用本方法.
     *
     * @param file 文件 或 文件夹.
     * @param fileDisposer 文件处理方式.
     * @param fileFilter 文件过滤器.
     */
    public static void fileDisposeFromDir(File file, FileDisposer fileDisposer, FileFilter fileFilter) {
        if (file == null || !file.exists()) {
            return;
        }
        // 过滤
        if (fileFilter != null && !fileFilter.accept(file)) {
            return;
        }
        if (file.isFile()){
            fileDisposer.dispose(file);
        } else if (file.isDirectory()) {
            File[] files = file.listFiles();
            if (files != null) {
                for (File item : files) {
                    fileDisposeFromDir(item, fileDisposer, fileFilter);
                }
            }
        } else {
            log.debug("非文件或文件夹, 跳过处理! filePath: {}", file.getPath());
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy