Delete files between last modified 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/24 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 DeleteFilesBetweenDates.java file having the source code to execute business logic.



 

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

import java.io.File;
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 DeleteFilesBetweenDates {
  static Properties readPropertiesFile = new Properties();
  private static List<File> resultFileList = new ArrayList<File>();
  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(DeleteFilesBetweenDates.class.getClassLoader().getResourceAsStream("input.properties"));
    catch (Exception e) {
      e.printStackTrace();
    }
    return props;
  }

  /**
   @param args
   */
  public static void main(String[] args) {
    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();
      }
    }
    List<File> readFiles = DeleteFilesBetweenDates.readFiles(directory, fromDate2, toDate2);
    for (File file : readFiles) {
      file.delete();
    }
    System.out.println("Total number of files deleted : : " + readFiles.size());
  }

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

    try {
      if (directory != null && directory.isDirectory()) {
        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);
                }
              }

            }

          }
        }
      else {
        boolean lastModified = getLastModified(directory, fromDate, toDate);
        if (lastModified) {
          resultFileList.add(directory);
        }
      }
    catch (Exception e) {
      e.printStackTrace();
    }
    return resultFileList;
  }

  public static boolean getLastModified(final File dir, final Date fromDate, final Date toDate)  {
    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 DeleteLastFiveDaysModifiedFiles.java file having the source code to execute business logic.



 

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

import java.io.File;
import java.io.IOException;
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 DeleteLastFiveDaysModifiedFiles {
  static Properties readPropertiesFile = new Properties();
  private static List<File> resultFileList = new ArrayList<File>();
  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(DeleteLastFiveDaysModifiedFiles.class.getClassLoader().getResourceAsStream("input.properties"));
    catch (Exception e) {
      e.printStackTrace();
    }
    return props;
  }

  /**
   @param args
   */
  public static void main(String[] args) {
    File directory = new File(sourceFileLocation);
    if (directory != null) {
      if (!directory.exists()) {
        directory.mkdirs();
      }
    }
    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.DAY_OF_MONTH, -5);

    List<File> readFiles = DeleteLastFiveDaysModifiedFiles.readFiles(directory, calendar.getTime()new Date());
    for (File file : readFiles) {
      file.delete();
    }
    System.out.println("Total number of files  deleted : : " + readFiles.size());
  }

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

    try {
      if (directory != null && directory.isDirectory()) {
        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);
                }
              }

            }

          }
        }
      else {
        boolean lastModified = getLastModified(directory, fromDate, toDate);
        if (lastModified) {
          resultFileList.add(directory);
        }
      }
    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 DeleteLastMonthModifiedFiles.java file having the source code to execute business logic.



 

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

import java.io.File;
import java.io.IOException;
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 DeleteLastMonthModifiedFiles {

  static Properties readPropertiesFile = new Properties();

  private static List<File> resultFileList = new ArrayList<File>();

  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(DeleteLastMonthModifiedFiles.class.getClassLoader().getResourceAsStream("input.properties"));
    catch (Exception e) {
      e.printStackTrace();
    }
    return props;
  }

  /**
   @param args
   */
  public static void main(String[] args) {
    File directory = new File(sourceFileLocation);
    if (directory != null) {
      if (!directory.exists()) {
        directory.mkdirs();
      }
    }
    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.DAY_OF_MONTH, -30);

    List<File> readFiles = DeleteLastMonthModifiedFiles.readFiles(directory, calendar.getTime()new Date());
    for (File file : readFiles) {
      file.delete();
    }
    System.out.println("Total number of files deleted : : " + readFiles.size());
  }

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

    try {
      if (directory != null && directory.isDirectory()) {
        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);
                }
              }

            }

          }
        }
      else {
        boolean lastModified = getLastModified(directory, fromDate, toDate);
        if (lastModified) {
          resultFileList.add(directory);
        }
      }
    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 DeleteLastOneDayModifiedFiles.java file having the source code to execute business logic.



 

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

import java.io.File;
import java.io.IOException;
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 DeleteLastOneDayModifiedFiles {
  static Properties readPropertiesFile = new Properties();
  private static List<File> resultFileList = new ArrayList<File>();
  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(DeleteLastOneDayModifiedFiles.class.getClassLoader().getResourceAsStream("input.properties"));
    catch (Exception e) {
      e.printStackTrace();
    }
    return props;
  }

  /**
   @param args
   */
  public static void main(String[] args) {
  
    File directory = new File(sourceFileLocation);
    if (directory != null) {
      if (!directory.exists()) {
        directory.mkdirs();
      }
    }
    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.DAY_OF_MONTH, -1);
    
    List<File> readFiles = DeleteLastOneDayModifiedFiles.readFiles(directory, calendar.getTime()new Date());
    for (File file : readFiles) {
      file.delete();
    }
    System.out.println("Total number of files : : " + readFiles.size());
  }

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

    try {
      if (directory != null && directory.isDirectory()) {
        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);
                }
              }

            }

          }
        }
      else {
        boolean lastModified = getLastModified(directory, fromDate, toDate);
        if (lastModified) {
          resultFileList.add(directory);
        }
      }
    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 DeleteLastTenDaysModifiedFiles.java file having the source code to execute business logic.



 

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

import java.io.File;
import java.io.IOException;
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 DeleteLastTenDaysModifiedFiles {
  static Properties readPropertiesFile = new Properties();
  private static List<File> resultFileList = new ArrayList<File>();
  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(DeleteLastTenDaysModifiedFiles.class.getClassLoader().getResourceAsStream("input.properties"));
    catch (Exception e) {
      e.printStackTrace();
    }
    return props;
  }

  /**
   @param args
   */
  public static void main(String[] args) {
  
    File directory = new File(sourceFileLocation);
    if (directory != null) {
      if (!directory.exists()) {
        directory.mkdirs();
      }
    }
    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.DAY_OF_MONTH, -10);
    
    List<File> readFiles = DeleteLastTenDaysModifiedFiles.readFiles(directory, calendar.getTime()new Date());
    for (File file : readFiles) {
      file.delete();
    }
    System.out.println("Total number of files deleted : : " + readFiles.size());
  }

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

    try {
      if (directory != null && directory.isDirectory()) {
        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);
                }
              }

            }

          }
        }
      else {
        boolean lastModified = getLastModified(directory, fromDate, toDate);
        if (lastModified) {
          resultFileList.add(directory);
        }
      }
    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 DeleteLastWeekModifiedFiles.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.IOException;
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 DeleteLastWeekModifiedFiles {
  static Properties readPropertiesFile = new Properties();
  private static List<File> resultFileList = new ArrayList<File>();
  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(DeleteLastWeekModifiedFiles.class.getClassLoader().getResourceAsStream("input.properties"));
    catch (Exception e) {
      e.printStackTrace();
    }
    return props;
  }

  /**
   @param args
   */
  public static void main(String[] args) {
    File directory = new File(sourceFileLocation);
    if (directory != null) {
      if (!directory.exists()) {
        directory.mkdirs();
      }
    }
    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.DAY_OF_MONTH, -7);

    List<File> readFiles = DeleteLastWeekModifiedFiles.readFiles(directory, calendar.getTime()new Date());
    for (File file : readFiles) {
      file.delete();
    }
    System.out.println("Total number of files deleted : : " + readFiles.size());
  }

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

    try {
      if (directory != null && directory.isDirectory()) {
        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);
                }
              }

            }

          }
        }
      else {
        boolean lastModified = getLastModified(directory, fromDate, toDate);
        if (lastModified) {
          resultFileList.add(directory);
        }
      }
    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.files</groupId> <artifactId>DeleteFilesBetweenLastModifiedDates</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