java 遍历指定文件路径

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

/**
 * 列出File类的一些常用操作比如遍历、过滤、文件操作工具类
 * @author zty
 *
 */
public class FileUtil {
    /**
     * 列出指定目录下的所有文件
     * @param dir
     * @throws IOException
     */
    public static void listDirectory(File dir) throws IOException{
        if(dir.isDirectory()) {
            String[]listDirectory = dir.list();
            for (String string : listDirectory) {
                System.out.println(string);
            }
        }else
            System.out.println(dir.getName());
    }
    /**
     * 列出指定目录下所有文件及其子文件
     * 
     */
    public static void listDirectoryTree(File file, int level) {
        for(int i = 0; i <= level; i++) {
            System.out.print("-");
        }
        System.out.println(file.getName());
        if(file.isDirectory()) {
            for (File f : file.listFiles()) {
                listDirectoryTree(f, level+1);    
            }
        }
    }
    /**
     * 列出指定目录下指定含有后缀名的所有文件
     * l两种思路
     */
    public static void listDirectorySuffix_1(File file, int level, String suffix) {
        if(file.isFile()) {
            if(file.getName().endsWith(suffix)) {
                for(int i = 0; i <= level; i++) {
                    System.out.print("-");
                }
                System.out.println(file.getName());
            }
        }else {
            for(File f : file.listFiles()) {
                if(f.isFile()) {
                    
                }
                listDirectorySuffix_1(f, level+1, suffix);
            }
        }
    }
    public static void listDirectorySuffix_2(File file, int level, String suffix) {
        if(file.isDirectory()) {
            for (File f : file.listFiles(new FileFilter() {
                
                @Override
                public boolean accept(File f) {

                    return f.getName().endsWith(suffix)||f.isDirectory();
                }
            })) {
                listDirectorySuffix_2(f, level+1, suffix);
            }
        }else {
            for (int i = 0; i <= level; i++) {
                System.out.print("-");
            }
            if(file.getName().endsWith(suffix)) {
                System.out.println(file.getName());
            }
        }        
    }    
}

你可能感兴趣的:(java)