使用FilenameFilter
问题内容:
我有一个目录:
File dir = new File(MY_PATH);
我想列出名称以整数字符串表示的所有文件,例如“ 10”,“ 20”。
我知道我应该使用:
dir.list(FilenameFilter filter);
如何定义我的FilenameFilter
?
PS: 我的意思是文件名可以是任何整数字符串,例如“ 10”或“ 2000000”或“ 3452345”。只要文件名是整数字符串,就没有位数限制。
问题答案:
您应该在 接口中 重写
accept
,并确保该参数仅包含数字字符。您可以使用以下方法进行检查:
__FilenameFilter
name
matches
String[] list = dir.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.matches("[0-9]+");
}
});