private static void preserveFiles(String filename) { File oldFile = new File(filename); File saveFile = new File(filename + ".temp"); SimpleDateFormat sdf = new SimpleDateFormat("ddMMMyy_HHmm"); String nowStr = sdf.format(new Date()); String retainFilename = makeBackupFilename(filename, nowStr); File retainFile = new File(retainFilename); if (retainFile.exists()) retainFile.delete(); String oldestSave = JConfig.queryConfiguration("save.file.4", ""); if (oldestSave.length() != 0) { File oldest = new File(oldestSave); if (oldest.exists()) { backupByDate(filename, oldest); } } for (int i = 4; i > 0; i--) { JConfig.setConfiguration( "save.file." + i, JConfig.queryConfiguration("save.file." + (i - 1), "")); } File keepFile = new File(retainFilename); if (!oldFile.renameTo(keepFile)) { JConfig.log() .logDebug( "Renaming the old file (" + oldFile + ") to the retain file (" + keepFile + ") failed!"); } JConfig.setConfiguration("save.file.0", retainFilename); File standard = new File(filename); if (!saveFile.renameTo(standard)) { JConfig.log() .logDebug( "Renaming the new file (" + saveFile + ") to the standard filename (" + standard + ") failed!"); } }
private static void backupByDate(String filename, File oldest) { SimpleDateFormat justDateFmt = new SimpleDateFormat("ddMMMyy"); String justDate = justDateFmt.format(new Date()); String oldBackup = makeBackupFilename(filename, justDate); File oldDateBackup = new File(oldBackup); if (oldDateBackup.exists()) { oldDateBackup.delete(); File newDateBackup = new File(oldBackup); oldest.renameTo(newDateBackup); } else { oldest.renameTo(oldDateBackup); String oldestByDate = JConfig.queryConfiguration("save.bydate.4", ""); for (int i = 4; i > 0; i--) { JConfig.setConfiguration( "save.bydate." + i, JConfig.queryConfiguration("save.bydate." + (i - 1), "")); } JConfig.setConfiguration("save.bydate.0", oldBackup); File deleteMe = new File(oldestByDate); deleteMe.delete(); } }