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