gpt4 book ai didi

java - Apache 公共(public) I/O。如何通过通配符过滤文件?

转载 作者:行者123 更新时间:2023-11-30 09:06:28 25 4
gpt4 key购买 nike

我的目录中有以下文件:

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]);
}
}
}
}

enter image description here

最佳答案

你会想要

FileFilter fileFilter = new WildcardFileFilter(Arrays.asList("*.log.*", "*.log"));

WildcardFileFilter 不适用于正则表达式。它适用于 UNIX 风格的通配符表达式。 * 表示任意数量的字符,? 表示一个字符。

关于java - Apache 公共(public) I/O。如何通过通配符过滤文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24433908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com