35 lines
908 B
Java
35 lines
908 B
Java
|
//: io/DirList2.java
|
||
|
// Uses anonymous inner classes.
|
||
|
// {Args: "D.*\.java"}
|
||
|
import java.util.regex.*;
|
||
|
import java.io.*;
|
||
|
import java.util.*;
|
||
|
|
||
|
public class DirList2 {
|
||
|
public static FilenameFilter filter(final String regex) {
|
||
|
// Creation of anonymous inner class:
|
||
|
return new FilenameFilter() {
|
||
|
private Pattern pattern = Pattern.compile(regex);
|
||
|
public boolean accept(File dir, String name) {
|
||
|
return pattern.matcher(name).matches();
|
||
|
}
|
||
|
}; // End of anonymous inner class
|
||
|
}
|
||
|
public static void main(String[] args) {
|
||
|
File path = new File(".");
|
||
|
String[] list;
|
||
|
if(args.length == 0)
|
||
|
list = path.list();
|
||
|
else
|
||
|
list = path.list(filter(args[0]));
|
||
|
Arrays.sort(list, String.CASE_INSENSITIVE_ORDER);
|
||
|
for(String dirItem : list)
|
||
|
System.out.println(dirItem);
|
||
|
}
|
||
|
} /* Output:
|
||
|
DirectoryDemo.java
|
||
|
DirList.java
|
||
|
DirList2.java
|
||
|
DirList3.java
|
||
|
*///:~
|