Advertisement
Toliak

BackupApp

Jan 7th, 2019
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.57 KB | None | 0 0
  1. import java.nio.file.*;
  2. import java.util.Calendar;
  3. import java.util.Date;
  4. import java.util.Timer;
  5. import java.util.TimerTask;
  6.  
  7. public class Main {
  8.     static long BACKUP_PERIOD = 1000 * 60 * 5;
  9.  
  10.     private static FileData parseFullFilename(Path path) {
  11.         String s = path.getFileName().toString();
  12.         int dot = s.lastIndexOf('.');
  13.  
  14.         FileData data = new FileData();
  15.         data.name = s.substring(0, dot);
  16.         data.extension = s.substring(dot+1);
  17.  
  18.         return data;
  19.     }
  20.  
  21.     public static void main(String[] args) throws java.io.IOException {
  22.         System.out.println("Hello World!");
  23.  
  24.         Path path;
  25.         if (args.length > 0) {
  26.             path = Paths.get(args[0]);
  27.             if (!Files.exists(path)) {
  28.                 System.out.println("File not " + path.toAbsolutePath().toString() + " exists");
  29.                 return;
  30.             }
  31.         } else {
  32.             System.out.println("Expected file path");
  33.             return;
  34.         }
  35.  
  36.         Path fullFilename = path.getFileName();
  37.         FileData fileData = parseFullFilename(fullFilename);
  38.  
  39.         System.out.println(path.normalize().toString());
  40.  
  41.         Path directory = Paths.get(path.getParent().toString(), fullFilename.toString() + "_backup/");
  42.         if (!Files.exists(directory)) {
  43.             Files.createDirectory(directory);
  44.         }
  45.  
  46.         Timer timer = new Timer();
  47.         BackupTimerTask task = new BackupTimerTask();
  48.         task.setFileInfo(fileData);
  49.  
  50.         timer.schedule(task, 0, BACKUP_PERIOD);
  51.     }
  52.  
  53. }
  54.  
  55. class FileData {
  56.     String name;
  57.     String extension;
  58. }
  59.  
  60. class BackupTimerTask extends TimerTask {
  61.     private long counter = 0;
  62.  
  63.     private FileData fileData;
  64.  
  65.     private static String getFileNamePostfix() {
  66.         Date date = new Date();
  67.         Calendar calendar = Calendar.getInstance();
  68.         calendar.setTime(date);
  69.  
  70.         StringBuilder result = new StringBuilder();
  71.         result.append(calendar.get(Calendar.YEAR));
  72.         result.append(calendar.get(Calendar.MONTH));
  73.         result.append(calendar.get(Calendar.DAY_OF_MONTH));
  74.         result.append(calendar.get(Calendar.HOUR_OF_DAY));
  75.         result.append(calendar.get(Calendar.MINUTE));
  76.         result.append(calendar.get(Calendar.SECOND));
  77.  
  78.         return result.toString();
  79.     }
  80.  
  81.     void setFileInfo(FileData data) {
  82.         fileData = data;
  83.     }
  84.  
  85.     @Override
  86.     public void run() {
  87.         System.out.println(fileData.name);
  88.         System.out.println(fileData.extension);
  89.         System.out.println(getFileNamePostfix());
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement