Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Zarovnaný rekurzivní výpis adresáře.

Java Java Zarovnaný rekurzivní výpis adresáře.

Aktivity (1)
Avatar
Tomek
Člen
Avatar
Tomek:28.10.2014 16:57

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
Odpovídá na Tomek
Jan Vargovský:28.10.2014 17:00
++lvl => lvl + 1
 
Nahoru Odpovědět 28.10.2014 17:00
Avatar
Tomek
Člen
Avatar
Odpovídá na Jan Vargovský
Tomek:28.10.2014 17:04

Super! Díky moc. :)

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.