Список уникальных директорий.
Тут позарез нужно было (и не раз) узнать, какие папки (директории) содержатся где-то. И не просто в директирии, а с n-ым уровнем вложенности.
Имена нужны в единственном числе, т.е. список уникальных имён директорий.
15 минут "на коленке" и готово.
Выглядит ужасно, но результатом я доволен.
Вот она
Ниже код:
Имена нужны в единственном числе, т.е. список уникальных имён директорий.
15 минут "на коленке" и готово.
Выглядит ужасно, но результатом я доволен.
Вот она
Ниже код:
import java.awt.BorderLayout;import java.awt.Dimension;import java.io.File;import java.util.ArrayList;import java.util.List;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;public class TestFrame extends JFrame {private static final long serialVersionUID = 1L;private final JScrollPane rootContentScroll = new JScrollPane();private List<String> names;private final JTextArea textArea = new JTextArea();public TestFrame() {super("Проверка директории...");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JPanel mainPanel = new JPanel();mainPanel.setLayout(new BorderLayout());mainPanel.add(rootContentScroll, BorderLayout.CENTER);rootContentScroll.setViewportView(textArea);getContentPane().add(mainPanel);setPreferredSize(new Dimension(600, 600));pack();setLocationRelativeTo(null);setVisible(true);names = new ArrayList<String>();JFileChooser fileChooser = new JFileChooser();fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);fileChooser.setAcceptAllFileFilterUsed(false);int ret = fileChooser.showDialog(null, "Выбор директории");if (ret == JFileChooser.APPROVE_OPTION) {File file = fileChooser.getSelectedFile();checkDir(file);}}private void checkDir(File Dir) {File[] children = Dir.listFiles();if (children != null) {for (int i = 0; i < children.length; i++) {if (children[i].isDirectory()){String label = (children[i].getName());if (names.contains(children[i].getName())) {continue;}else {textArea.append(label + "\r\n"); // для виндыnames.add(label);}checkDir(children[i]);}}}}public static void main(String[] args) {javax.swing.SwingUtilities.invokeLater(new Runnable() {public void run() {new TestFrame();}});}}
Комментарии
Отправить комментарий