| | |
| | | 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 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(); |
| | | FileOpsVisitor bearbeiter = new FileOpsVisitor(); |
| | | bearbeiter.setOperation(OP_DELETE); |
| | | Files.walkFileTree(targetFile.toPath(), bearbeiter); |
| | | } else { |
| | |
| | | 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); |