home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 December / PCO1297.ISO / FilesBBS / FREI / CLS.ARJ / CLS.ZIP / WildcardFilter.java < prev   
Encoding:
Java Source  |  1997-11-01  |  845 b   |  28 lines

  1. import java.io.*;
  2.  
  3. class WildcardFilter implements java.io.FilenameFilter {
  4.   String wildcard;
  5.   WildcardFilter(String w) { wildcard=w; }
  6.   public boolean accept(File dir, String name) {
  7.     return match(name, 0, 0);
  8.   }
  9.   boolean match(String name, int nn, int nw) {
  10.     while(nn<name.length() && nw<wildcard.length()) {
  11.       if(wildcard.charAt(nw)=='?') {
  12.         if(name.charAt(nn++)=='.') return false;   // ?: Zeichen mu▀ kommen
  13.         ++nw;
  14.       }
  15.       else if(wildcard.charAt(nw)=='*') {          // *: Beliebig viele Zeichen
  16.         while(nn<=name.length()) {
  17.           if(match(name, nn++, nw+1)) return true;
  18.         }
  19.         return false;
  20.       }
  21.       else
  22.         if(name.charAt(nn++)!=wildcard.charAt(nw++))
  23.           return false;
  24.     }
  25.     return nn==name.length() && nw==wildcard.length();
  26.   }
  27. }
  28.