Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.nio.file.*;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.Timer;
- import java.util.TimerTask;
- public class Main {
- static long BACKUP_PERIOD = 1000 * 60 * 5;
- private static FileData parseFullFilename(Path path) {
- String s = path.getFileName().toString();
- int dot = s.lastIndexOf('.');
- FileData data = new FileData();
- data.name = s.substring(0, dot);
- data.extension = s.substring(dot+1);
- return data;
- }
- public static void main(String[] args) throws java.io.IOException {
- System.out.println("Hello World!");
- Path path;
- if (args.length > 0) {
- path = Paths.get(args[0]);
- if (!Files.exists(path)) {
- System.out.println("File not " + path.toAbsolutePath().toString() + " exists");
- return;
- }
- } else {
- System.out.println("Expected file path");
- return;
- }
- Path fullFilename = path.getFileName();
- FileData fileData = parseFullFilename(fullFilename);
- System.out.println(path.normalize().toString());
- Path directory = Paths.get(path.getParent().toString(), fullFilename.toString() + "_backup/");
- if (!Files.exists(directory)) {
- Files.createDirectory(directory);
- }
- Timer timer = new Timer();
- BackupTimerTask task = new BackupTimerTask();
- task.setFileInfo(fileData);
- timer.schedule(task, 0, BACKUP_PERIOD);
- }
- }
- class FileData {
- String name;
- String extension;
- }
- class BackupTimerTask extends TimerTask {
- private long counter = 0;
- private FileData fileData;
- private static String getFileNamePostfix() {
- Date date = new Date();
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
- StringBuilder result = new StringBuilder();
- result.append(calendar.get(Calendar.YEAR));
- result.append(calendar.get(Calendar.MONTH));
- result.append(calendar.get(Calendar.DAY_OF_MONTH));
- result.append(calendar.get(Calendar.HOUR_OF_DAY));
- result.append(calendar.get(Calendar.MINUTE));
- result.append(calendar.get(Calendar.SECOND));
- return result.toString();
- }
- void setFileInfo(FileData data) {
- fileData = data;
- }
- @Override
- public void run() {
- System.out.println(fileData.name);
- System.out.println(fileData.extension);
- System.out.println(getFileNamePostfix());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement