要同时删除不多的几个文件,不想再判断OS再用delete还是sudo rm,想写个通用的。搜了下g,正巧找到了。
正则可以看《正则表达式30分钟入门》
RegexTester中的Options-Ignore case和Multiline勾上。
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
*
表1.常用的元字符
代码 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
*
*/
public class TestFileDelete {
public static void main(String args[]) {
List<String> files = new ArrayList<String>();
File file = new File("C:\\Documents and Settings\\Administrator\\桌面\\正则");
/*String postfix = "^.*[.XXX]$";//以".XXX"结尾的文件
String contain = "^.*[XXX].*$";//名字包含"XXX"的文件
String prefix = "^[XXX].*$";//以"XXX"开头的文件*/
//String cc="0AA933E9-277D-4E77-B95F-876146452C6B";
String postfix = "^.*[.doc]$";//以".XXX"结尾的文件
String contain = "^.*[4E77].*$";//名字包含"XXX"的文件
String prefix = "^[d].*$";//以"XXX"开头的文件
File fileList[] = file.listFiles();
for (File f : fileList) {
if (f.isFile()) {
//if (f.getName().matches(postfix))
if (f.getName().matches(contain))
//if (f.getName().matches(prefix))
files.add(f.getName());
}
}
System.out.println(String.valueOf(files));
}
}
正则可以看《正则表达式30分钟入门》
RegexTester中的Options-Ignore case和Multiline勾上。