当前位置: 首页 > 面试题库 >

在与Java模式匹配的目录中列出文件

禄和宜
2023-03-14
问题内容

我正在寻找一种方法来获取与给定目录中的模式(首选项正则表达式)匹配的文件的列表。

我在网上找到了一个使用apache的commons-io软件包和以下代码的教程:

Collection getAllFilesThatMatchFilenameExtension(String directoryName, String extension)
{
  File directory = new File(directoryName);
  return FileUtils.listFiles(directory, new WildcardFileFilter(extension), null);
}

但这只是返回一个基本集合(根据文档,它是的集合java.io.File)。有没有一种方法可以返回类型安全的泛型集合?


问题答案:

请参阅File#listFiles(FilenameFilter)。

File dir = new File(".");
File [] files = dir.listFiles(new FilenameFilter() {
    @Override
    public boolean accept(File dir, String name) {
        return name.endsWith(".xml");
    }
});

for (File xmlfile : files) {
    System.out.println(xmlfile);
}


 类似资料:
  • dir=“某物”\temp。 我是新来的,任何帮助都很感激。我认为这是字符转义…但我不确定,我想使用正则表达式,但我想我会遇到同样的问题。 预期 C:\\users\\admin\\appdata\\local\\ dir=c:\\users\\admin\\appdata\\local\\temp

  • 问题内容: 列出1000多个目录和子目录中文件名的最快方法是什么? 编辑; 我使用的当前代码是: 问题答案: 看起来不错(递归遍历目录)瓶颈将是您需要执行的所有文件I / O操作,优化Java不会显示任何实际改进。

  • 问题内容: 我想重命名与名称相匹配的basedir下的所有目录。例如: 在中,我有: 我想重命名所有匹配的目录,但是我想保留前缀部分。 使用,我可以轻松地列出所有目录,如下所示: 但是,如何使用(或与其他应用程序结合)以保留前缀? 提前谢谢了! 问题答案: 在执行命令之前将目录更改为父目录,因此此处对于每个父目录都是本地的。

  • 问题内容: 如何找到具有匹配模式的所有键的计数。 例如,有两个键和。常见的模式是。因此,这里的计数是2。 如何在Redis中做到这一点? 问题答案: 免责声明 我希望这个旧答案不会损坏任何具有数百万把钥匙的生产系统。如果出于某种原因仍要在生产中仍然计算redis的匹配键,最好使用具有匹配模式的scan。 如果仅使用KEYS进行搜索,并使用Redis客户端,您将获得所有匹配密钥的数字列表,对吗? 例

  • 问题内容: 我有一个具有以下结构的文件夹 我只对rootDir中的xml文件感兴趣。如果我使用JDOM读取XML,则以下代码还将考虑“ testDirectory”中的文件并吐出“内容不允许异常” 如何在使用listFiles方法时排除子目录?以下代码可以工作吗? 问题答案: 使用a 代替,因为它将使您能够访问实际文件,然后包括对