From 66a747dc2259a9c7e747c0c685d3fb398b59107c Mon Sep 17 00:00:00 2001 From: mmkilic Date: Mon, 22 Jun 2026 14:59:01 +0300 Subject: [PATCH] select all added --- compiled/FileMerger.jar | Bin 3747 -> 4375 bytes src/FileMergerApp.java | 54 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/compiled/FileMerger.jar b/compiled/FileMerger.jar index 9656649660dd34a5da0b1e52fd7bd7f1b83770a9..c827712c9fc77aec088aaad4397bee18339a63e3 100644 GIT binary patch delta 4154 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 E07=jnYybcN delta 3514 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 o7^y-4002XilMp!$aZxZ_; selectFiles()); + selectAllButton.addActionListener(e -> selectAllFiles()); mergeButton.addActionListener(e -> mergeFiles()); JPanel buttonPanel = new JPanel(); buttonPanel.add(selectButton); + buttonPanel.add(selectAllButton); buttonPanel.add(mergeButton); add(buttonPanel, BorderLayout.NORTH); @@ -67,6 +70,57 @@ public class FileMergerApp extends JFrame { textArea.append(System.lineSeparator()); } } + + private void selectAllFiles() { + JFileChooser chooser = new JFileChooser(); + + if (lastDirectory != null) { + chooser.setCurrentDirectory(lastDirectory); + } + + chooser.setMultiSelectionEnabled(false); + chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + + int result = chooser.showOpenDialog(this); + if (result != JFileChooser.APPROVE_OPTION) { + return; + } + + File selectedDir = chooser.getSelectedFile(); + if (selectedDir == null || !selectedDir.isDirectory()) { + return; + } + + lastDirectory = selectedDir; + + List files = new ArrayList<>(); + collectFilesRecursively(selectedDir, files); + + if (files.isEmpty()) { + return; + } + + for (File file : files) { + selectedFiles.add(file); + textArea.append(file.getAbsolutePath()); + textArea.append(System.lineSeparator()); + } + } + + private void collectFilesRecursively(File dir, List result) { + File[] entries = dir.listFiles(); + if (entries == null) { + return; + } + + for (File entry : entries) { + if (entry.isDirectory()) { + collectFilesRecursively(entry, result); + } else { + result.add(entry); + } + } + } private void mergeFiles() { if (selectedFiles.isEmpty()) {