Dateiverwaltung für die WebBox
ulrich
2020-01-17 e18175272e97f84f9fb0f53254ed766662f34fb1
Loeschen von Bilddateien beruecksichtigt auch die verborgenen kleineren Fassungen im selben Ordner.
1 files modified
25 ■■■■■ changed files
src/java/de/uhilger/filecms/api/FileMgr.java 25 ●●●●● patch | view | raw | blame | history
src/java/de/uhilger/filecms/api/FileMgr.java
@@ -56,6 +56,7 @@
import javax.servlet.http.HttpServletRequest;
import net.coobird.thumbnailator.Thumbnails;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.WildcardFileFilter;
/**
 * Methoden zur Verwaltung von Dateien
@@ -246,7 +247,17 @@
            if(targetFile.isDirectory()) {
              FileUtils.deleteDirectory(targetFile);
            } else {
                /*
                Wenn targetFile mit jpg, jpeg oder png endet,
                muss eine Unterfunktion eine Liste aller Dateien bilden,
                die so heissen, also z.B. alle [Dateiname]*.jpg
                */
              String fname = targetFile.getName().toLowerCase();
              if(fname.endsWith(TNServlet.JPEG) || fname.endsWith(TNServlet.JPG) || fname.endsWith(TNServlet.PNG)) {
                deleteImgFiles(targetDir, targetFile);
              } else {
              targetFile.delete();
              }
            }
          }
        }
@@ -258,6 +269,20 @@
    return result;
  }
  
  public void deleteImgFiles(File targetDir, File targetFile) {
    String fnameext = targetFile.getName();
    int dotpos = fnameext.lastIndexOf(".");
    String fname = fnameext.substring(0, dotpos);
    String ext = fnameext.substring(dotpos);
    logger.fine("fname: " + fname + ", ext: " + ext);
    FileFilter fileFilter = new WildcardFileFilter(fname + "*" + ext);
    File[] files = targetDir.listFiles(fileFilter);
    for (int i = 0; i < files.length; i++) {
        logger.fine(files[i].getName());
        files[i].delete();
    }
  }
  public String copyFiles(String fromPath, String toPath, List fileNames) {
    return copyOrMoveFiles(fromPath, toPath, fileNames, OP_COPY);
  }