使用FilenameFilter


问题内容

我有一个目录:

File dir = new File(MY_PATH);

我想列出名称以整数字符串表示的所有文件,例如“ 10”,“ 20”。
我知道我应该使用:

dir.list(FilenameFilter filter);

如何定义我的FilenameFilter

PS: 我的意思是文件名可以是任何整数字符串,例如“ 10”或“ 2000000”或“ 3452345”。只要文件名是整数字符串,就没有位数限制。


问题答案:

您应该在 接口中 重写
accept,并确保该参数仅包含数字字符。您可以使用以下方法进行检查:
__FilenameFilternamematches

String[] list = dir.list(new FilenameFilter() {
    @Override
    public boolean accept(File dir, String name) {
        return name.matches("[0-9]+");
    }
});