Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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

Aktivity
Avatar

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

Člen
Avatar
Odpovídá na Jan Vargovský
:28.10.2014 17:04

Super! Díky moc. :)

 
Nahoru Odpovědět
28.10.2014 17:04
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.