没有好好的写,只写了一个简单的,连参数验证都没加。需要的 自己加
public static void main(String[] args) {
String path = "c:\\temp";
File file = new File(path);
String[] files = file.list();
for (int i = 0; i < files.length; i++) {
if (isMatched("*.exe", files[i])) {
System.out.println(files[i]);
}
}
} // a*b*c*d.txt
// *b.txt
// b*.txt
public static boolean isMatched(String arg1, String arg2) {
boolean result = false;
int position = 0; String[] array = arg1.split("\\*"); for (int i = 0; i < array.length; i++) {
if (i == 0) {
if (arg2.indexOf(array[i], position) != 0) {
return result;
} position = arg2.indexOf(array[i], position) + array[i].length();
} else if (i == array.length - 1) {
if (!arg2.endsWith(array[i])) {
return result;
}
} else {
if (arg2.indexOf(array[i], position) < position) {
return result;
} position = arg2.indexOf(array[i], position) + array[i].length();
}
} result = true; return result;
}
public static void main(String[] args) {
String path = "c:\\temp";
File file = new File(path);
String[] files = file.list();
for (int i = 0; i < files.length; i++) {
if (isMatched("*.exe", files[i])) {
System.out.println(files[i]);
}
}
} // a*b*c*d.txt
// *b.txt
// b*.txt
public static boolean isMatched(String arg1, String arg2) {
boolean result = false;
int position = 0; String[] array = arg1.split("\\*"); for (int i = 0; i < array.length; i++) {
if (i == 0) {
if (arg2.indexOf(array[i], position) != 0) {
return result;
} position = arg2.indexOf(array[i], position) + array[i].length();
} else if (i == array.length - 1) {
if (!arg2.endsWith(array[i])) {
return result;
}
} else {
if (arg2.indexOf(array[i], position) < position) {
return result;
} position = arg2.indexOf(array[i], position) + array[i].length();
}
} result = true; return result;
}
About DotNet security
http://fredrik.nsquared2.com/default.aspx
http://www.codeproject.com/dotnet/Surrogate_Serialization.asp