⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filterwalker.java

📁 本书属于《开发专家之 Sun ONE》系列丛书
💻 JAVA
字号:
//【代码7-6-1】
//FilterWalker.java
import java.io.*;
import java.util.*;

class FilterWalker implements Observer
{
    String[] patterns;
    File dir;
    
    FilterWalker (String dirname, String[] patterns) 
{
        dir = new File(dirname);
        this.patterns = patterns;

        // Start walking the file system.
        FileWalker fw = new FileWalker();
        fw.addObserver(this);
        fw.walk(new File(dirname), false, new FileFilter());
    }

    class FileFilter implements java.io.FileFilter
{
        // Returns true if filename matches one of the patterns.
        public boolean accept(File file)
{
            if (file.isDirectory()) 
{
                return true;
            }

            String s = file.getName();
            if (patterns.length == 0) {
                return true;
            } else {
                for (int i=0; i<patterns.length; i++) {
                    if (s.endsWith(patterns[i])) {
                        return true;
                    }
                }
            }
            return false;
        }
    }

    // This method is called for each file that the file walker discovers.
    public void update(Observable o, Object arg) {
        System.out.println(arg);
    }

    public static void main(String[] args) {
        if (args.length < 1) {
            System.err.println(
                "Usage: java Main <directory> [<pattern>...]");
        } else {
            // Retrieve patterns, if any.
            String[] patterns = new String[args.length-1];
            System.arraycopy(args, 1, patterns, 0, patterns.length);
            new Main(args[0], patterns);
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -