显示从开始日期到结束日期的日志文件名

时间:2014-11-19 05:05:09

标签: java

我需要在一个文件夹中显示日志文件,该文件夹的日期和时间附加到文件名,从特定的开始日期到特定的结束日期。我会这样做吗? 请帮忙。

2 个答案:

答案 0 :(得分:1)

您需要遍历包含日志的文件夹中的文件列表,过滤掉在给定日期时间范围之外的任何文件;这听起来像FileFilter API的工作,正如另一位回答者所指出的那样:

File folder = new File("your/path");
File[] listOfFiles = folder.listFiles(myFileFilterObject);

现在您的问题是编写过滤器的accept方法。

  1. 如果你想要一个快速而又脏的解决方案,你可以使用String.CompareTo来利用简单的字符串比较(这需要将你的日志文件格式化为年份,然后将月份格式化为数字,然后日期,最后是时间)。

  2. 如果您熟悉正则表达式,则可以重用Apache Commons' RegexFileFilter,但您会two problems

  3. ,你可以做到'对'通过提取文件名的相关部分并比较Comparing date strings in Java中提到的日期:

  4. 的方式(对于您的特定目的而言可能过于苛刻)
      

    Datebeforeafter方法,可以是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