Files modified between dates example

Click here to download eclipse supported ZIP file





This is input.properties properties file and these properties are used in the application.




source.file.location=C:/cv/local/
dateFormat= yyyy/MM/dd HH:mm:ss
#Mention the mentioned format date yyyy-MM-dd HH:mm:ss
fromDate = 2016/09/20 10:00:00
#Mention the mentioned format date yyyy-MM-dd HH:mm:ss; In case you till current time then mention as present
toDate = 2016/09/24 18:00:00


This is FilesBetweenDates.java file having the source code to execute business logic.



 

    
/**
 * This is the program finds files between from and to dates in a particular folder.
 */
package com.cv.java.file;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;

/**
 @author Chandra Vardhan
 *
 */
public class FilesBetweenDates {
  static Properties readPropertiesFile = new Properties();
  private List<String> resultFileList = new ArrayList<String>();
  static String fromDate = null;
  static String toDate = null;
  static String dateFormat = null;
  static String sourceFileLocation = null;
  static {
    readPropertiesFile = readPropertiesFile();
    setValues(readPropertiesFile);
  }

  private static void setValues(Properties readPropertiesFile2) {

    if (readPropertiesFile2 != null) {
      dateFormat = readPropertiesFile2.getProperty("dateFormat");
      fromDate = readPropertiesFile2.getProperty("fromDate");
      toDate = readPropertiesFile2.getProperty("toDate");
      sourceFileLocation = readPropertiesFile2.getProperty("source.file.location");
    }

  }

  private static Properties readPropertiesFile() {
    Properties props = new Properties();
    try {
      props.load(FilesBetweenDates.class.getClassLoader().getResourceAsStream("input.properties"));
    catch (Exception e) {
      e.printStackTrace();
    }
    return props;
  }

  /**
   @param args
   */
  public static void main(String[] args) {
    FilesBetweenDates lastFiles = new FilesBetweenDates();
    SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
    Date fromDate2 = null;
    Date toDate2 = null;
    try {
      fromDate2 = sdf.parse(fromDate);
      if (toDate != null && toDate.equalsIgnoreCase("Present")) {
        toDate2 = new Date();
      else {
        toDate2 = sdf.parse(toDate);
      }
    catch (ParseException e1) {
      e1.printStackTrace();
    }
    File directory = new File(sourceFileLocation);
    if (directory != null) {
      if (!directory.exists()) {
        directory.mkdirs();
      }
      File[] listFiles = directory.listFiles();
      if (!(listFiles != null && listFiles.length > 0)) {
        OutputStream os = null;
        try {
          os = new FileOutputStream(directory + "/test.txt");
          os.write("test content".getBytes());
          os.flush();
        catch (FileNotFoundException e) {
          e.printStackTrace();
        catch (IOException e) {
          e.printStackTrace();
        finally {
          if (os != null) {
            try {
              os.close();
            catch (IOException e) {
              e.printStackTrace();
            }
          }
        }

      }
    }
    List<String> readFiles = lastFiles.readFiles(directory, fromDate2, toDate2);
    for (String file : readFiles) {
      System.out.println(file);
    }
    System.out.println("Total number of files : : " + readFiles.size());
  }

  public List<String> readFiles(final File directory, Date fromDate, Date toDate) {

    try {
      if (directory != null) {
        File[] listFiles = directory.listFiles();

        if (listFiles != null) {
          for (File file : listFiles) {
            if (file != null) {
              if (file.isDirectory()) {
                readFiles(file, fromDate, toDate);
              else {
                boolean lastModified = getLastModified(file, fromDate, toDate);
                if (lastModified) {
                  resultFileList.add(file.getAbsolutePath());
                }
              }

            }

          }
        }
      }
    catch (Exception e) {
      e.printStackTrace();
    }
    return resultFileList;
  }

  public static boolean getLastModified(final File dir, final Date fromDate, final Date toDatethrows IOException {
    Date modifiedDate = null;
    if (dir != null && dir.isFile()) {
      modifiedDate = new Date(dir.lastModified());
    }
    if (modifiedDate != null && modifiedDate.after(fromDate&& modifiedDate.before(toDate)) {
      return true;
    else {
      return false;
    }
  }
}


This is LastFiveDaysModifiedFiles.java file having the source code to execute business logic.



 

    
/**
 * This is the program finds files between from and to dates in a particular folder.
 */
package com.cv.java.file;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Properties;

/**
 @author Chandra Vardhan
 *
 */
public class LastFiveDaysModifiedFiles {
  static Properties readPropertiesFile = new Properties();
  private List<String> resultFileList = new ArrayList<String>();
  static String sourceFileLocation = null;
  static {
    readPropertiesFile = readPropertiesFile();
    setValues(readPropertiesFile);
  }

  private static void setValues(Properties readPropertiesFile2) {

    if (readPropertiesFile2 != null) {
      sourceFileLocation = readPropertiesFile2.getProperty("source.file.location");
    }

  }

  private static Properties readPropertiesFile() {
    Properties props = new Properties();
    try {
      props.load(LastFiveDaysModifiedFiles.class.getClassLoader().getResourceAsStream("input.properties"));
    catch (Exception e) {
      e.printStackTrace();
    }
    return props;
  }

  /**
   @param args
   */
  public static void main(String[] args) {
    LastFiveDaysModifiedFiles lastFiles = new LastFiveDaysModifiedFiles();
  
    File directory = new File(sourceFileLocation);
    if (directory != null) {
      if (!directory.exists()) {
        directory.mkdirs();
      }
      File[] listFiles = directory.listFiles();
      if (!(listFiles != null && listFiles.length > 0)) {
        OutputStream os = null;
        try {
          os = new FileOutputStream(directory + "/test.txt");
          os.write("test content".getBytes());
          os.flush();
        catch (FileNotFoundException e) {
          e.printStackTrace();
        catch (IOException e) {
          e.printStackTrace();
        finally {
          if (os != null) {
            try {
              os.close();
            catch (IOException e) {
              e.printStackTrace();
            }
          }
        }

      }
    }
    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.DAY_OF_MONTH, -5);
    
    List<String> readFiles = lastFiles.readFiles(directory, calendar.getTime()new Date());
    for (String file : readFiles) {
      System.out.println(file);
    }
    System.out.println("Total number of files : : " + readFiles.size());
  }

  public List<String> readFiles(final File directory, Date fromDate, Date toDate) {

    try {
      if (directory != null) {
        File[] listFiles = directory.listFiles();

        if (listFiles != null) {
          for (File file : listFiles) {
            if (file != null) {
              if (file.isDirectory()) {
                readFiles(file, fromDate, toDate);
              else {
                boolean lastModified = getLastModified(file, fromDate, toDate);
                if (lastModified) {
                  resultFileList.add(file.getAbsolutePath());
                }
              }

            }

          }
        }
      }
    catch (Exception e) {
      e.printStackTrace();
    }
    return resultFileList;
  }

  public static boolean getLastModified(final File dir, final Date fromDate, final Date toDatethrows IOException {
    Date modifiedDate = null;
    if (dir != null && dir.isFile()) {
      modifiedDate = new Date(dir.lastModified());
    }
    if (modifiedDate != null && modifiedDate.after(fromDate&& modifiedDate.before(toDate)) {
      return true;
    else {
      return false;
    }
  }
}


This is LastMonthModifiedFiles.java file having the source code to execute business logic.



 

    
/**
 * This is the program finds files between from and to dates in a particular folder.
 */
package com.cv.java.file;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Properties;

/**
 @author Chandra Vardhan
 *
 */
public class LastMonthModifiedFiles {
  static Properties readPropertiesFile = new Properties();
  private List<String> resultFileList = new ArrayList<String>();
  static String sourceFileLocation = null;
  static {
    readPropertiesFile = readPropertiesFile();
    setValues(readPropertiesFile);
  }

  private static void setValues(Properties readPropertiesFile2) {

    if (readPropertiesFile2 != null) {
      sourceFileLocation = readPropertiesFile2.getProperty("source.file.location");
    }

  }

  private static Properties readPropertiesFile() {
    Properties props = new Properties();
    try {
      props.load(LastMonthModifiedFiles.class.getClassLoader().getResourceAsStream("input.properties"));
    catch (Exception e) {
      e.printStackTrace();
    }
    return props;
  }

  /**
   @param args
   */
  public static void main(String[] args) {
    LastMonthModifiedFiles lastFiles = new LastMonthModifiedFiles();
  
    File directory = new File(sourceFileLocation);
    if (directory != null) {
      if (!directory.exists()) {
        directory.mkdirs();
      }
      File[] listFiles = directory.listFiles();
      if (!(listFiles != null && listFiles.length > 0)) {
        OutputStream os = null;
        try {
          os = new FileOutputStream(directory + "/test.txt");
          os.write("test content".getBytes());
          os.flush();
        catch (FileNotFoundException e) {
          e.printStackTrace();
        catch (IOException e) {
          e.printStackTrace();
        finally {
          if (os != null) {
            try {
              os.close();
            catch (IOException e) {
              e.printStackTrace();
            }
          }
        }

      }
    }
    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.DAY_OF_MONTH, -30);
    
    List<String> readFiles = lastFiles.readFiles(directory, calendar.getTime()new Date());
    for (String file : readFiles) {
      System.out.println(file);
    }
    System.out.println("Total number of files : : " + readFiles.size());
  }

  public List<String> readFiles(final File directory, Date fromDate, Date toDate) {

    try {
      if (directory != null) {
        File[] listFiles = directory.listFiles();

        if (listFiles != null) {
          for (File file : listFiles) {
            if (file != null) {
              if (file.isDirectory()) {
                readFiles(file, fromDate, toDate);
              else {
                boolean lastModified = getLastModified(file, fromDate, toDate);
                if (lastModified) {
                  resultFileList.add(file.getAbsolutePath());
                }
              }

            }

          }
        }
      }
    catch (Exception e) {
      e.printStackTrace();
    }
    return resultFileList;
  }

  public static boolean getLastModified(final File dir, final Date fromDate, final Date toDatethrows IOException {
    Date modifiedDate = null;
    if (dir != null && dir.isFile()) {
      modifiedDate = new Date(dir.lastModified());
    }
    if (modifiedDate != null && modifiedDate.after(fromDate&& modifiedDate.before(toDate)) {
      return true;
    else {
      return false;
    }
  }
}


This is LastOneDayModifiedFiles.java file having the source code to execute business logic.



 

    
/**
 * This is the program finds files between from and to dates in a particular folder.
 */
package com.cv.java.file;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Properties;

/**
 @author Chandra Vardhan
 *
 */
public class LastOneDayModifiedFiles {
  static Properties readPropertiesFile = new Properties();
  private List<String> resultFileList = new ArrayList<String>();
  static String sourceFileLocation = null;
  static {
    readPropertiesFile = readPropertiesFile();
    setValues(readPropertiesFile);
  }

  private static void setValues(Properties readPropertiesFile2) {

    if (readPropertiesFile2 != null) {
      sourceFileLocation = readPropertiesFile2.getProperty("source.file.location");
    }

  }

  private static Properties readPropertiesFile() {
    Properties props = new Properties();
    try {
      props.load(LastOneDayModifiedFiles.class.getClassLoader().getResourceAsStream("input.properties"));
    catch (Exception e) {
      e.printStackTrace();
    }
    return props;
  }

  /**
   @param args
   */
  public static void main(String[] args) {
    LastOneDayModifiedFiles lastFiles = new LastOneDayModifiedFiles();
  
    File directory = new File(sourceFileLocation);
    if (directory != null) {
      if (!directory.exists()) {
        directory.mkdirs();
      }
      File[] listFiles = directory.listFiles();
      if (!(listFiles != null && listFiles.length > 0)) {
        OutputStream os = null;
        try {
          os = new FileOutputStream(directory + "/test.txt");
          os.write("test content".getBytes());
          os.flush();
        catch (FileNotFoundException e) {
          e.printStackTrace();
        catch (IOException e) {
          e.printStackTrace();
        finally {
          if (os != null) {
            try {
              os.close();
            catch (IOException e) {
              e.printStackTrace();
            }
          }
        }

      }
    }
    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.DAY_OF_MONTH, -1);
    
    List<String> readFiles = lastFiles.readFiles(directory, calendar.getTime()new Date());
    for (String file : readFiles) {
      System.out.println(file);
    }
    System.out.println("Total number of files : : " + readFiles.size());
  }

  public List<String> readFiles(final File directory, Date fromDate, Date toDate) {

    try {
      if (directory != null) {
        File[] listFiles = directory.listFiles();

        if (listFiles != null) {
          for (File file : listFiles) {
            if (file != null) {
              if (file.isDirectory()) {
                readFiles(file, fromDate, toDate);
              else {
                boolean lastModified = getLastModified(file, fromDate, toDate);
                if (lastModified) {
                  resultFileList.add(file.getAbsolutePath());
                }
              }

            }

          }
        }
      }
    catch (Exception e) {
      e.printStackTrace();
    }
    return resultFileList;
  }

  public static boolean getLastModified(final File dir, final Date fromDate, final Date toDatethrows IOException {
    Date modifiedDate = null;
    if (dir != null && dir.isFile()) {
      modifiedDate = new Date(dir.lastModified());
    }
    if (modifiedDate != null && modifiedDate.after(fromDate&& modifiedDate.before(toDate)) {
      return true;
    else {
      return false;
    }
  }
}


This is LastTenDaysModifiedFiles.java file having the source code to execute business logic.



 

    
/**
 * This is the program finds files between from and to dates in a particular folder.
 */
package com.cv.java.file;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Properties;

/**
 @author Chandra Vardhan
 *
 */
public class LastTenDaysModifiedFiles {
  static Properties readPropertiesFile = new Properties();
  private List<String> resultFileList = new ArrayList<String>();
  static String sourceFileLocation = null;
  static {
    readPropertiesFile = readPropertiesFile();
    setValues(readPropertiesFile);
  }

  private static void setValues(Properties readPropertiesFile2) {

    if (readPropertiesFile2 != null) {
      sourceFileLocation = readPropertiesFile2.getProperty("source.file.location");
    }

  }

  private static Properties readPropertiesFile() {
    Properties props = new Properties();
    try {
      props.load(LastTenDaysModifiedFiles.class.getClassLoader().getResourceAsStream("input.properties"));
    catch (Exception e) {
      e.printStackTrace();
    }
    return props;
  }

  /**
   @param args
   */
  public static void main(String[] args) {
    LastTenDaysModifiedFiles lastFiles = new LastTenDaysModifiedFiles();
  
    File directory = new File(sourceFileLocation);
    if (directory != null) {
      if (!directory.exists()) {
        directory.mkdirs();
      }
      File[] listFiles = directory.listFiles();
      if (!(listFiles != null && listFiles.length > 0)) {
        OutputStream os = null;
        try {
          os = new FileOutputStream(directory + "/test.txt");
          os.write("test content".getBytes());
          os.flush();
        catch (FileNotFoundException e) {
          e.printStackTrace();
        catch (IOException e) {
          e.printStackTrace();
        finally {
          if (os != null) {
            try {
              os.close();
            catch (IOException e) {
              e.printStackTrace();
            }
          }
        }

      }
    }
    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.DAY_OF_MONTH, -10);
    
    List<String> readFiles = lastFiles.readFiles(directory, calendar.getTime()new Date());
    for (String file : readFiles) {
      System.out.println(file);
    }
    System.out.println("Total number of files : : " + readFiles.size());
  }

  public List<String> readFiles(final File directory, Date fromDate, Date toDate) {

    try {
      if (directory != null) {
        File[] listFiles = directory.listFiles();

        if (listFiles != null) {
          for (File file : listFiles) {
            if (file != null) {
              if (file.isDirectory()) {
                readFiles(file, fromDate, toDate);
              else {
                boolean lastModified = getLastModified(file, fromDate, toDate);
                if (lastModified) {
                  resultFileList.add(file.getAbsolutePath());
                }
              }

            }

          }
        }
      }
    catch (Exception e) {
      e.printStackTrace();
    }
    return resultFileList;
  }

  public static boolean getLastModified(final File dir, final Date fromDate, final Date toDatethrows IOException {
    Date modifiedDate = null;
    if (dir != null && dir.isFile()) {
      modifiedDate = new Date(dir.lastModified());
    }
    if (modifiedDate != null && modifiedDate.after(fromDate&& modifiedDate.before(toDate)) {
      return true;
    else {
      return false;
    }
  }
}


This is LastWeekModifiedFiles.java file having the source code to execute business logic.



 

    
/**
 * This is the program finds files between from and to dates in a particular folder.
 */
package com.cv.java.file;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Properties;

/**
 @author Chandra Vardhan
 *
 */
public class LastWeekModifiedFiles {
  static Properties readPropertiesFile = new Properties();
  private List<String> resultFileList = new ArrayList<String>();
  static String sourceFileLocation = null;
  static {
    readPropertiesFile = readPropertiesFile();
    setValues(readPropertiesFile);
  }

  private static void setValues(Properties readPropertiesFile2) {

    if (readPropertiesFile2 != null) {
      sourceFileLocation = readPropertiesFile2.getProperty("source.file.location");
    }

  }

  private static Properties readPropertiesFile() {
    Properties props = new Properties();
    try {
      props.load(LastWeekModifiedFiles.class.getClassLoader().getResourceAsStream("input.properties"));
    catch (Exception e) {
      e.printStackTrace();
    }
    return props;
  }

  /**
   @param args
   */
  public static void main(String[] args) {
    LastWeekModifiedFiles lastFiles = new LastWeekModifiedFiles();
  
    File directory = new File(sourceFileLocation);
    if (directory != null) {
      if (!directory.exists()) {
        directory.mkdirs();
      }
      File[] listFiles = directory.listFiles();
      if (!(listFiles != null && listFiles.length > 0)) {
        OutputStream os = null;
        try {
          os = new FileOutputStream(directory + "/test.txt");
          os.write("test content".getBytes());
          os.flush();
        catch (FileNotFoundException e) {
          e.printStackTrace();
        catch (IOException e) {
          e.printStackTrace();
        finally {
          if (os != null) {
            try {
              os.close();
            catch (IOException e) {
              e.printStackTrace();
            }
          }
        }

      }
    }
    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.DAY_OF_MONTH, -7);
    
    List<String> readFiles = lastFiles.readFiles(directory, calendar.getTime()new Date());
    for (String file : readFiles) {
      System.out.println(file);
    }
    System.out.println("Total number of files : : " + readFiles.size());
  }

  public List<String> readFiles(final File directory, Date fromDate, Date toDate) {

    try {
      if (directory != null) {
        File[] listFiles = directory.listFiles();

        if (listFiles != null) {
          for (File file : listFiles) {
            if (file != null) {
              if (file.isDirectory()) {
                readFiles(file, fromDate, toDate);
              else {
                boolean lastModified = getLastModified(file, fromDate, toDate);
                if (lastModified) {
                  resultFileList.add(file.getAbsolutePath());
                }
              }

            }

          }
        }
      }
    catch (Exception e) {
      e.printStackTrace();
    }
    return resultFileList;
  }

  public static boolean getLastModified(final File dir, final Date fromDate, final Date toDatethrows IOException {
    Date modifiedDate = null;
    if (dir != null && dir.isFile()) {
      modifiedDate = new Date(dir.lastModified());
    }
    if (modifiedDate != null && modifiedDate.after(fromDate&& modifiedDate.before(toDate)) {
      return true;
    else {
      return false;
    }
  }
}


This is pom.xml file having the entries of dependency jars and information to build the application .



	
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.cv.java.file</groupId> <artifactId>FilesModifiedBetweenDates</artifactId> <version>1.0</version> </project>

This is log4j.properties file having the entries for logging the information into the console/file.




#By default enabling Console appender
# Root logger option
log4j.rootLogger=INFO, stdout

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p [%c]:%L -->> %m%n

# Redirect log messages to a log file
#log4j.appender.file=org.apache.log4j.RollingFileAppender
#log4j.appender.file.File=C:\servlet-application.log
#log4j.appender.file.MaxFileSize=5MB
#log4j.appender.file.MaxBackupIndex=10
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

No comments:

Post a Comment