我需要在一个文件夹中显示日志文件,该文件夹的日期和时间附加到文件名,从特定的开始日期到特定的结束日期。我会这样做吗? 请帮忙。
答案 0 :(得分:1)
您需要遍历包含日志的文件夹中的文件列表,过滤掉在给定日期时间范围之外的任何文件;这听起来像FileFilter API的工作,正如另一位回答者所指出的那样:
File folder = new File("your/path");
File[] listOfFiles = folder.listFiles(myFileFilterObject);
现在您的问题是编写过滤器的accept方法。
如果你想要一个快速而又脏的解决方案,你可以使用String.CompareTo
来利用简单的字符串比较(这需要将你的日志文件格式化为年份,然后将月份格式化为数字,然后日期,最后是时间)。
如果您熟悉正则表达式,则可以重用Apache Commons' RegexFileFilter
,但您会two problems。
或,你可以做到'对'通过提取文件名的相关部分并比较Comparing date strings in Java中提到的日期:
Date有before和after方法,可以是compared to each other。
你也可以给Joda-Time一个。
如何验证今天的日期是否在date1和date3之间?
if(todayDate.after(historyDate) && todayDate.before(futureDate)) { // In between }
答案 1 :(得分:0)
您需要从日志目录中获取文件
File folder = new File("your/path");
File[] listOfFiles = folder.listFiles();
以上内容将为您提供所有文件,但为了满足您的期望,您可以使用FileFilter。现在列出的代码是:
File[] listOfFiles = folder.listFiles(myFileFilterObject);
在您的文件过滤器accept
API中,您定义了基于日期时间范围过滤文件的逻辑。
或者如果你擅长Regex,那么使用Apache commons RegexFileFilter