From b659da052d5cd75bae7b7ee1e82c222fae2c5377 Mon Sep 17 00:00:00 2001
From: ulrich
Date: Thu, 14 Nov 2024 11:38:07 +0000
Subject: [PATCH] Hinweis auf Gson aufgenommen.

---
 src/de/uhilger/fm/Eraser.java |   41 ++++++++++++++++++++++++++++++++---------
 1 files changed, 32 insertions(+), 9 deletions(-)

diff --git a/src/de/uhilger/fm/Eraser.java b/src/de/uhilger/fm/Eraser.java
index 9378b12..e485e96 100644
--- a/src/de/uhilger/fm/Eraser.java
+++ b/src/de/uhilger/fm/Eraser.java
@@ -23,26 +23,42 @@
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 /**
- * Eine Klasse mit Methoden zum Loeschen von Dateien
+ * Loeschen von Dateien und Ordnern
  * 
  * @author Ulrich Hilger, 15. Januar 2024
  */
 public class Eraser {
+  
+  public static final int OP_DELETE = 3;  
+  
+  private final String STR_DOT = ".";
+  
+  /**
+   * Dateien und Ordner loeschen
+   * 
+   * @param relPath  der relative Pfad, der gemeinsam mit 'base' den absoluten 
+   * Pfad zum Ordner ergibt, der die zu loeschenden Dateien enthaelt
+   * @param fileNames  Liste mit Namen von Dateien und Ordnern, die geloescht werden sollen
+   * @param base  absoluter Basispfad
+   * @return "deleted" oder null, wenn ein Fehler auftrat
+   */
   public String deleteFiles(String relPath, List<String> fileNames, String base) {
     String result = null;
     try {
       //logger.fine(fileNames.toString());
-      if (!relPath.startsWith(Const.STR_DOT)) {
+      if (!relPath.startsWith(STR_DOT)) {
         File targetDir = new File(base, relPath); // getTargetDir(relPath);
         //logger.fine("targetDir: " + targetDir);
         for (String fileName : fileNames) {
           File targetFile = new File(targetDir, fileName);
           //logger.fine(targetFile.getAbsolutePath());
           if (targetFile.isDirectory()) {
-            CopyMoveVisitor bearbeiter = new CopyMoveVisitor();
-            bearbeiter.setOperation(Const.OP_DELETE);
+            FileOpsVisitor bearbeiter = new FileOpsVisitor();
+            bearbeiter.setOperation(OP_DELETE);
             Files.walkFileTree(targetFile.toPath(), bearbeiter);
           } else {
             /*
@@ -51,9 +67,9 @@
                 die so heissen, also z.B. alle [Dateiname]*.jpg
              */
             String fname = targetFile.getName().toLowerCase();
-            if (fname.endsWith(Const.JPEG)
-                    || fname.endsWith(Const.JPG)
-                    || fname.endsWith(Const.PNG)) {
+            if (fname.endsWith(ImageFileFilter.JPEG)
+                    || fname.endsWith(ImageFileFilter.JPG)
+                    || fname.endsWith(ImageFileFilter.PNG)) {
               deleteImgFiles(targetDir, targetFile);
             } else {
               targetFile.delete();
@@ -63,14 +79,21 @@
         result = "deleted";
       }
     } catch (IOException ex) {
-      //logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
+      Logger.getLogger(Eraser.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
     }
     return result;
   }
 
+  /**
+   * Alle Varianten einer Bilddatei loeschen
+   * 
+   * @param targetDir  der Ordner, aus dem geloescht werden soll
+   * @param targetFile Bilddatei, deren Varianten geloescht werden sollen
+   * @throws IOException wenn etwas schief geht
+   */
   private void deleteImgFiles(File targetDir, File targetFile) throws IOException {
     String fnameext = targetFile.getName();
-    int dotpos = fnameext.lastIndexOf(Const.STR_DOT);
+    int dotpos = fnameext.lastIndexOf(STR_DOT);
     String fname = fnameext.substring(0, dotpos);
     String ext = fnameext.substring(dotpos);
     //logger.fine("fname: " + fname + ", ext: " + ext);

--
Gitblit v1.9.3