From c6b6d94fe81f669e229612ed2e336625650ebe6e Mon Sep 17 00:00:00 2001
From: ulrich
Date: Fri, 15 Nov 2024 10:01:48 +0000
Subject: [PATCH] Build-Anweisungen ergaenzt
---
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