From 6f8f3c4ed15ebb949e17f7cb40e6b98f53669b34 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Tue, 2 Sep 2025 20:31:16 +0200 Subject: [PATCH] Add all files --- .idea/artifacts/copy_images_jar.xml | 9 +++++ .idea/misc.xml | 6 +++ .idea/modules.xml | 8 ++++ copy-images.iml | 12 ++++++ src/META-INF/MANIFEST.MF | 3 ++ src/Main.java | 59 ++++++++++++++++++++++++++++ testdir/images.jpg | Bin 0 -> 6488 bytes testdir/test2/img.png | 0 testdir/test2/test3/img2.png | 0 9 files changed, 97 insertions(+) create mode 100644 .idea/artifacts/copy_images_jar.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 copy-images.iml create mode 100644 src/META-INF/MANIFEST.MF create mode 100644 src/Main.java create mode 100644 testdir/images.jpg create mode 100644 testdir/test2/img.png create mode 100644 testdir/test2/test3/img2.png diff --git a/.idea/artifacts/copy_images_jar.xml b/.idea/artifacts/copy_images_jar.xml new file mode 100644 index 0000000..105a0d8 --- /dev/null +++ b/.idea/artifacts/copy_images_jar.xml @@ -0,0 +1,9 @@ + + + $PROJECT_DIR$/out/artifacts/copy_images_jar + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..0548357 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..08164ca --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/copy-images.iml b/copy-images.iml new file mode 100644 index 0000000..fb8e866 --- /dev/null +++ b/copy-images.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/META-INF/MANIFEST.MF b/src/META-INF/MANIFEST.MF new file mode 100644 index 0000000..5ee19cb --- /dev/null +++ b/src/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: Main + diff --git a/src/Main.java b/src/Main.java new file mode 100644 index 0000000..397d6ce --- /dev/null +++ b/src/Main.java @@ -0,0 +1,59 @@ +import org.apache.commons.io.FileUtils; + +import javax.imageio.IIOException; +import java.io.File; +import java.io.IOException; +import java.util.Objects; +import java.util.Scanner; + +public class Main { + + public static void main(String[] args) { + // Start here... + Scanner sc = new Scanner(System.in); + System.out.println("Enter a path: "); + String filePath = sc.nextLine(); + System.out.println("debug mode on? (Y/N)"); + String debugChoice = sc.nextLine().trim().toLowerCase(); + boolean debug = debugChoice.equals("y"); + listDirs(new File(filePath), debug, ""); + } + + public static void listDirs(File file, boolean debug, String directoryName) { + if (file.isFile()) { //stopping condition + String name = file.getName().toLowerCase(); + try { + + + if (!directoryName.endsWith("/") && !directoryName.isEmpty()) directoryName += "/"; + // check if image + if (name.endsWith(".jpg") || name.endsWith(".png") || name.endsWith(".jpeg") || name.endsWith(".tiff") || name.endsWith(".gif")) { + if (debug) System.out.println("checking file " + file.getName()); + FileUtils.copyFile(file, new File("images/" + directoryName + file.getName())); + } else if (name.endsWith(".mp4") || name.endsWith(".wmv") || name.endsWith(".mov") || name.endsWith(".avi")) { //check if video + if (debug) System.out.println("checking file " + file.getName()); + FileUtils.copyFile(file, new File("videos/" + directoryName + file.getName())); + } else if (name.endsWith(".mp3") || name.endsWith(".wav")) { //check if audio file + if (debug) System.out.println("checking file " + file.getName()); + FileUtils.copyFile(file, new File("music/" + directoryName + file.getName())); + } else if (name.endsWith(".doc") || name.endsWith(".docx") || name.endsWith(".rtf")) { + if (debug) System.out.println("checking file " + file.getName()); + FileUtils.copyFile(file, new File("docs/" + directoryName + file.getName())); + } + } catch (IOException e) { + System.out.println("something went wrong: " + e.getMessage()); + } + } + + if (file.isDirectory()) { + if (file.listFiles() != null) { + if (!directoryName.endsWith("/")) directoryName += "/"; + for (File file1 : Objects.requireNonNull(file.listFiles())) { + listDirs(file1, debug, directoryName + file.getName()); + } + + } + + } + } +} diff --git a/testdir/images.jpg b/testdir/images.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b363e8f0094c36074af2faf42546aab988a15eb5 GIT binary patch literal 6488 zcmYLM2QVC5+g*0`=)vl}1*@&P$jZyI%Idv@=%PdyLiFBQM2X(5=uwjBglMamM6~EN zQ4)gB`_26Scb@0YoadgId!Bpm%$>P+3wNsk3N-{00l>il0C4UDaJLMI01)95P*GFS zP*YLU(9qD)-6t&={4e_#U|KpFFqoN-4a~sJOhdyi%FfL%0D(a0SjDBqg{1g|AObkV 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

m&lsAqek-a}V3OK&9XbS2wSKiyT3YQ?8bY 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