filterwalker.java
来自「JAVA 2应用开发指南源码」· Java 代码 · 共 63 行
JAVA
63 行
//【代码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 + =
减小字号Ctrl + -
显示快捷键?