📄 fsofilenamefilter.java
字号:
package com.jspsmart.file;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: </p> * @author not attributable * @version 1.0 */import java.io.File;import java.io.FilenameFilter;public class FsoFilenameFilter implements FilenameFilter{ public FsoFilenameFilter(String s) { StringBuffer stringbuffer = new StringBuffer(); for(int i = 0; i < s.length(); i++) if(s.charAt(i) != '*' || stringbuffer.length() <= 0 || stringbuffer.charAt(stringbuffer.length() - 1) != '*') stringbuffer.append(s.charAt(i)); normalizedFilter = stringbuffer.toString(); originalFilter = s; } public String getFilter() { return originalFilter; } public boolean accept(File file, String s) { if(normalizedFilter.length() > 0) return accept(s, 0, 0); else return true; } protected boolean accept(String s, int i, int j) { for(; j < normalizedFilter.length(); j++) switch(normalizedFilter.charAt(j)) { case 63: // '?' if(i < s.length()) i++; else return false; break; case 42: // '*' if(j == normalizedFilter.length() - 1) return true; char c = normalizedFilter.charAt(j + 1); if(c == '?') { for(int k = i; k < s.length(); k++) if(accept(s, k, j + 1)) return true; return false; } for(int l = s.indexOf(c, i); l < s.length() && l != -1; l = s.indexOf(c, l + 1)) if(accept(s, l, j + 1)) return true; return false; default: if(i < s.length() && normalizedFilter.charAt(j) == s.charAt(i)) i++; else return false; break; } return i == s.length(); } protected String originalFilter; protected String normalizedFilter;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -