From 0cd5e868890043ce0544444cbf87a753b4119a93 Mon Sep 17 00:00:00 2001
From: ulrich
Date: Fri, 15 Nov 2024 09:35:07 +0000
Subject: [PATCH] Beruecksichtigung aller Varianten eines Bildes auch beim Kopieren von Bilddateien

---
 src/de/uhilger/fm/Mover.java |   40 ++++++++++++++++++----------------------
 1 files changed, 18 insertions(+), 22 deletions(-)

diff --git a/src/de/uhilger/fm/Mover.java b/src/de/uhilger/fm/Mover.java
index e92aac7..5b452db 100644
--- a/src/de/uhilger/fm/Mover.java
+++ b/src/de/uhilger/fm/Mover.java
@@ -79,14 +79,11 @@
    */
   private void copyOrMoveFiles(String fromPath, String toPath, String[] fileNames, 
           int operation, String base) throws IOException {
-    //String result = null;
     File srcDir = new File(base, fromPath);
     File targetDir = new File(base, toPath);
     for (String fileName : fileNames) {
       File srcFile = new File(srcDir, fileName);
-      //logger.fine("srcFile: " + srcFile);
       if (srcFile.isDirectory()) {
-        //logger.fine("srcFile is directory.");
         FileOpsVisitor bearbeiter = new FileOpsVisitor();
         bearbeiter.setTargetDir(targetDir.toPath());
         bearbeiter.setOperation(operation);
@@ -97,21 +94,20 @@
         if (destFile.exists()) {
           destFile = getNewFileName(destFile);
         }
-        if (operation == OP_MOVE) {
-          String fname = srcFile.getName().toLowerCase();
-          if (fname.endsWith(ImageFileFilter.JPEG)
-                  || fname.endsWith(ImageFileFilter.JPG)
-                  || fname.endsWith(ImageFileFilter.PNG)) {
-            moveImgFilesToDirectory(srcFile, srcDir, targetDir/*, false*/);
-          } else {
-            Files.move(source, destFile.toPath());
-          }
+        String fname = srcFile.getName().toLowerCase();
+        if (fname.endsWith(ImageFileFilter.JPEG)
+                || fname.endsWith(ImageFileFilter.JPG)
+                || fname.endsWith(ImageFileFilter.PNG)) {
+          copyOrMoveImgFilesToDirectory(srcFile, srcDir, targetDir/*, false*/, operation);
         } else {
-          Files.copy(source, destFile.toPath());
-        }
+          if (operation == OP_MOVE) {
+            Files.move(source, destFile.toPath());
+          } else {
+            Files.copy(source, destFile.toPath());
+          }
+        }        
       }
     }
-    //return result;
   }
 
   /**
@@ -126,20 +122,20 @@
    * @param targetDir der Zielort
    * @throws IOException wenn etwas schief geht
    */
-  private void moveImgFilesToDirectory(File srcFile, File srcDir, File targetDir/*, 
-          boolean createDestDir*/) throws IOException {
+  private void copyOrMoveImgFilesToDirectory(File srcFile, File srcDir, File targetDir, 
+          int operation) throws IOException {
     String fnameext = srcFile.getName();
     int dotpos = fnameext.lastIndexOf(".");
     String fname = fnameext.substring(0, dotpos);
     String ext = fnameext.substring(dotpos);
-    //logger.fine("fname: " + fname + ", ext: " + ext);
     Path targetPath = targetDir.toPath();
     DirectoryStream<Path> stream = Files.newDirectoryStream(srcDir.toPath(), fname + "*" + ext); 
-                                                //"*.{txt,doc,pdf,ppt}"
     for (Path path : stream) {
-      //logger.fine(path.getFileName().toString());
-      //Files.delete(path);
-      Files.move(path, targetPath.resolve(path.getFileName()));
+      if(operation == OP_COPY) {
+        Files.copy(path, targetPath.resolve(path.getFileName()));
+      } else {
+        Files.move(path, targetPath.resolve(path.getFileName()));
+      }
     }
     stream.close();
   }

--
Gitblit v1.9.3