📄 filterwalker.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 + -