java - 在内部目录中找到一堆文件

标签 java file io

嗨,我有一个目录,其中包含名称类似于

的子目录
1-1,
2-3,
4-10,
11-20

现在我想找到 1-10 范围内的所有目录,因此它应该返回目录 1-1,2-3 和 4-10。我有以下代码,但它没有按预期工作。

File files[] = folder.listFiles(new FileFilter() {
            public boolean accept(File file) {

                String name = file.getName().toLowerCase();

                if (name.startsWith("1-") || name.endsWith("-10"))
                    return true;

                return false;
            }
        });

上面的代码给出了输出 1-1 和 4-10,它不包括 2-3 的组合。我该如何解决这个问题?请帮忙。提前致谢。

最佳答案

由于您想要根据数字标准进行匹配,因此将名称作为字符串进行检查并不是正确的方法。正如 @Perneel 上面所说,您要做的是解析目录名称以获取它包含的范围并检查这些范围。

    File[] files = folder.listFiles(new FileFilter() {
        public boolean accept(File file) {
            try {
                String[] bounds = file.getName().toLowerCase().split("-");
                return (Integer.parseInt(bounds[0]) <= 10 && Integer.parseInt(bounds[1]) >= 1);
            } catch (Exception e) {
                // array index out of bounds & number format exceptions mean 
                // this isn't a directory with the proper name format
                return false;
            }
        }
    });
    System.out.println(Arrays.toString(files)); // 1-1, 2-3, 4-10

关于java - 在内部目录中找到一堆文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23786286/

相关文章:

java - 多生产者和消费者多线程 Java 未按预期工作

Java Camel 路由永远不会到达 other 语句

java - Android 从 URI 读取文本文件

c++ - 为什么要使用 char 数组来存储以二进制模式打开的文件的内容?

c# - 如何获取当前 C# 源代码文件的路径?

java - file.delete() 不彻底删除遗留的图像空白图像文件

java - 迁移到 AndroidX 后出现 java.lang.NoClassDefFoundError 崩溃

javascript - 如何获取 C 上本地文件的属性 : drive with JSP or Javascript?

python - 无需多次迭代即可从文件中获取数据

c - 为什么这个程序没有给出任何输出(找出下一个回文和素数没有)?