Avatar
Tomek
Člen
Avatar
Tomek:

Zdravím. Možná se toto téma zde už někde vyskytlo, ale potřeboval bych, aby se mi výpis adresářů a všech podadresářů zarovnal podle úrovní. Za případné návrhy děkuji.

class DirectoryFilter implements FileFilter {
        @Override
        public boolean accept(File f) {
                return f.isDirectory();
        }
}
public class Application {
        public static void main(String[] args) {
                najdiAdresare("C:/Users/Tom/Desktop/slozka");
        }

        public static void najdiAdresare(String path) {
                File file = new File(path);
                if (!file.exists()) {
                        najdiAdresare(JOptionPane.showInputDialog(null, "Zadejte nový název:",
                                        "Neplatný název adresáře", JOptionPane.INFORMATION_MESSAGE));
                } else {
                        if (file.isFile())
                                najdiAdresare(JOptionPane.showInputDialog(null, "Zadejte nový název:",
                                                "Cesta obsahuje soubor, ne adresář!", JOptionPane.INFORMATION_MESSAGE));
                        else
                                printAll(file, 0);
                }
        }

        private static void printAll(File file, int lvl) {
                for (File f : file.listFiles(new DirectoryFilter())) {
                        for (int i = 0; i < lvl; i++)
                                System.out.print("  ");
                        System.out.println(f.getName());
                        if (f.listFiles(new DirectoryFilter()).length > 0)
                                printAll(f, ++lvl);
                }
        }
}

Aktuální výpis vypadá takto:

1
  1.1
    1.1.1
    1.1.2
    1.2
      1.2.1
  2
    2.1
    2.2
    3
      3.1
Editováno 28.10.2014 16:59
Odpovědět 28.10.2014 16:57
"Jak nahoře, tak dole. Jak uvnitř, tak vně."
Avatar
Jan Vargovský
Redaktor
Avatar
 
Nahoru Odpovědět 28.10.2014 17:00
Avatar
Tomek
Člen
Avatar
Nahoru Odpovědět 28.10.2014 17:04
"Jak nahoře, tak dole. Jak uvnitř, tak vně."
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.