コード例 #1
0
 public void cleanByPeriodOffset(final Date now, final int periodOffset) {
   final Date dateOfPeriodToClean = this.rc.getRelativeDate(now, periodOffset);
   final String regex = this.fileNamePattern.toRegex(dateOfPeriodToClean);
   final String stemRegex = FileFilterUtil.afterLastSlash(regex);
   File archive0 = new File(this.fileNamePattern.convertMultipleArguments(dateOfPeriodToClean, 0));
   archive0 = archive0.getAbsoluteFile();
   final File parentDir = archive0.getAbsoluteFile().getParentFile();
   final File[] arr$;
   final File[] matchingFileArray =
       arr$ = FileFilterUtil.filesInFolderMatchingStemRegex(parentDir, stemRegex);
   for (final File f : arr$) {
     f.delete();
   }
   if (this.parentClean) {
     this.removeFolderIfEmpty(parentDir);
   }
 }
コード例 #2
0
 /**
  * Will remove the directory passed as parameter if empty. After that, if the parent is also
  * becomes empty, remove the parent dir as well but at most 3 times.
  *
  * @param dir
  * @param depth
  */
 private void removeFolderIfEmpty(File dir, int depth) {
   // we should never go more than 3 levels higher
   if (depth >= 3) {
     return;
   }
   if (dir.isDirectory() && FileFilterUtil.isEmptyDirectory(dir)) {
     addInfo("deleting folder [" + dir + "]");
     dir.delete();
     removeFolderIfEmpty(dir.getParentFile(), depth + 1);
   }
 }
コード例 #3
0
 private String transformFileNamePatternFromInt2Date(String fileNamePatternStr) {
   String slashified = FileFilterUtil.slashify(fileNamePatternStr);
   String stemOfFileNamePattern = FileFilterUtil.afterLastSlash(slashified);
   return stemOfFileNamePattern.replace("%i", "%d{" + ZIP_ENTRY_DATE_PATTERN + "}");
 }