home *** CD-ROM | disk | FTP | other *** search
Java Source | 1997-11-01 | 845 b | 28 lines |
- import java.io.*;
-
- class WildcardFilter implements java.io.FilenameFilter {
- String wildcard;
- WildcardFilter(String w) { wildcard=w; }
- public boolean accept(File dir, String name) {
- return match(name, 0, 0);
- }
- boolean match(String name, int nn, int nw) {
- while(nn<name.length() && nw<wildcard.length()) {
- if(wildcard.charAt(nw)=='?') {
- if(name.charAt(nn++)=='.') return false; // ?: Zeichen mu▀ kommen
- ++nw;
- }
- else if(wildcard.charAt(nw)=='*') { // *: Beliebig viele Zeichen
- while(nn<=name.length()) {
- if(match(name, nn++, nw+1)) return true;
- }
- return false;
- }
- else
- if(name.charAt(nn++)!=wildcard.charAt(nw++))
- return false;
- }
- return nn==name.length() && nw==wildcard.length();
- }
- }
-