Java FilenameFilter示例 – 查找删除某些扩展名的文件
Java FilenameFilter
示例 – 查找/删除某些扩展名的文件
很多时候,我们需要遍历并查找具有特定扩展名的所有文件,而对它们进行某些操作(例如删除它们)就只能进行。 如果您希望在一定时间后使用应用程序从日志文件夹中删除所有日志文件(如果存在此要求),则通常需要执行此操作。
在 Java 中,您可以使用FilenameFilter
并覆盖它的accept(File targetDirectoty, String fileName)
方法,以对参数目录内的所有文件执行文件过滤。
在此示例中,我将使用FilenameFilter
列出文件夹“c:\\temp"
中所有以.log
扩展名结尾的文件,然后删除所有日志文件。
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"));
}
}
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果