🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Java `FilenameFilter`示例 – 查找/删除某些扩展名的文件 > 原文: [https://howtodoinjava.com/java/io/how-to-find-delete-files-of-certain-extension-filenamefilter-example/](https://howtodoinjava.com/java/io/how-to-find-delete-files-of-certain-extension-filenamefilter-example/) 很多时候,我们需要遍历并**查找具有特定扩展名**的所有文件,而对它们进行某些操作(例如删除它们)就只能进行。 如果您希望在一定时间后使用应用程序从日志文件夹中删除所有日志文件(如果存在此要求),则通常需要执行此操作。 在 Java 中,您可以使用`FilenameFilter`并覆盖它的`accept(File targetDirectoty, String fileName)`方法,以对参数目录内的所有文件执行文件过滤。 在此示例中,我将使用`FilenameFilter`列出文件夹`“c:\\temp"`中所有以`.log`扩展名结尾的文件,然后删除所有日志文件。 ```java package com.howtodoinjava.examples.io; import java.io.File; import java.io.FilenameFilter; public class FilenameFilterExample { public static void main(String[] args) { //Delete all files from this directory String targetDirectory = "c:\\temp"; File dir = new File(targetDirectory); //Filter out all log files String[] logFiles = dir.list(new LogFilterFilter()); //If no log file found; no need to go further if (logFiles.length == 0) return; //This code will delete all log files one by one for (String log : logFiles) { String tempLogFile = new StringBuffer(targetDirectory).append(File.separator).append(log).toString(); File fileDelete = new File(tempLogFile); boolean isdeleted = fileDelete.delete(); System.out.println("file : " + tempLogFile + " is deleted : " + isdeleted); } } } //This filter will be used to check for all files if a file is log file class LogFilterFilter implements FilenameFilter { @Override public boolean accept(File dir, String fileName) { return (fileName.endsWith(".log")); } } ``` **祝您学习愉快!**