From 1b9e9cdf20a29d7851e08f3326ad7808b94e09bf Mon Sep 17 00:00:00 2001 From: ulrich Date: Thu, 14 Nov 2024 10:24:17 +0000 Subject: [PATCH] Dokumentation in Arbeit: kleinere Anpassungen --- 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