我在目录中有以下文件:
error.log
error1.log
Somename.log.trololo
AnotherName.logarifm
我希望以下文件位于数组中:
error.log
error1.log
Somename.log.trololo
我写了以下代码:
FileFilter fileFilter = new WildcardFileFilter("*.log.*|*.log$");
File[] files = source.listFiles(fileFilter);
但我的阵列是空的。
如何写出正确的通配符?
public class Test {
public static void main(String[] args) {
File source = new File("D:");
if (source.isDirectory()) {
FileFilter fileFilter = new WildcardFileFilter(Arrays.asList("*.log.*", "*.log"));
File[] files = source.listFiles(fileFilter);
for (int i = 0; i < files.length; i++) {
System.out.println(files[i]);
}
}
}
}
答案 0 :(得分:2)
你想要
FileFilter fileFilter = new WildcardFileFilter(Arrays.asList("*.log.*", "*.log"));
WildcardFileFilter
不适用于正则表达式。它适用于UNIX样式的通配符表达式。 *
代表任意数量的字符,?
代表一个字符。