Как создать генератор дерева каталогов на Java

Благодаря этому руководству вы узнаете, как создать собственный генератор дерева каталогов на Java для визуализации и лучшей организации структуры файлов и папок. Кофе-брейк #193. Как создать генератор дерева каталогов на Java. Как работают конструкторы в Java - 1Если вы когда-либо использовали команду tree в терминале Windows, то вы наверняка знаете, насколько полезной может быть визуализация структуры каталога и всех его подкаталогов. Сейчас вы научитесь создавать собственный генератор дерева каталогов на Java. Это позволит вам легко визуализировать файлы и папки. Итак, приступим!

import java.io.File;
Эта строка импортирует класс File из пакета Java IO, который используется для представления файла или каталога в файловой системе.

public  class  DirectoryTreeGenerator { 
    public  static  void  main ( String [] args ) { 

        // Создание корневого каталога (root) 
        File root = new  File ( "/path/to/root/directory" ); 

        // Вызов рекурсивной функции для печати дерева 
        printDirectoryTree (root, "" ); 

    }
У класса DirectoryTreeGenerator есть метод main, который является точкой входа в программу. Внутри метода main мы создаем объект File, представляющий корневой каталог дерева. Затем мы вызываем функцию printDirectoryTree, передавая корневой объект File и пустую строку в качестве аргументов. Это запустит рекурсивный процесс печати дерева.

public static void printDirectoryTree(File folder, String indent) {
        // Печатаем имя папки
        System.out.println(indent + folder.getName());

        // Получаем список всех файлов в каталоге
        File[] files = folder.listFiles();

        // Если папка пуста, возвращаем
        if (files == null) {
            return;
        }
Функция printDirectoryTree принимает объект File, представляющий папку, и строку, представляющую текущий уровень отступа. Сначала она печатает имя папки, используя метод getName класса File. Затем с помощью метода listFiles мы получаем список всех файлов в папке и присваиваем результат массиву объектов File. Если папка пуста, функция возвращается, ничего не делая.

// Добавляем отступ для каждого уровня дерева
        indent += "   ";

        // Рекурсивно вызываем функцию для каждого подкаталога
        for (File file : files) {
            if (file.isDirectory()) {
                printDirectoryTree(file, indent);
            }
        }
    }
}
Если папка не пуста, функция добавляет отступ к текущему уровню отступа, представленному строкой indent. Затем она перебирает массив объектов File и проверяет с помощью метода isDirectory, является ли каждый из них каталогом. Если это каталог, функция вызывает себя рекурсивно, передавая в качестве аргументов объект File, представляющий подкаталог, и обновленный уровень отступа. Этот процесс повторяется до тех пор, пока не будут пройдены и напечатаны все подкаталоги.

import java.io.File;

public class DirectoryTreeGenerator {

    public static void main(String[] args) {
        // Создаем корневой каталог
        File root = new File("/path/to/root/directory");

        // Вызов рекурсивной функции для печати дерева
        printDirectoryTree(root, "");
    }

    public static void printDirectoryTree(File folder, String indent) {
        // Печать имени папки
        System.out.println(indent + folder.getName());

        // Получаем список всех файлов в папке 
        File[] files = folder.listFiles();

        // Если папка пуста, возвращаем
        if (files == null) {
            return;
        }

        // Добавляем отступ для каждого уровня дерева
        indent += "   ";

        // Рекурсивно вызываем функцию для каждого подкаталога
        for (File file : files) {
            if (file.isDirectory()) {
                printDirectoryTree(file, indent);
            }
        }
    }
}
Этот код использует рекурсивную функцию для перемещения по каталогам и подкаталогам, печатая имя каждой папки по пути. Параметр indent используется для добавления интервала к выходным данным, создавая визуальную древовидную структуру. Чтобы использовать этот код, просто замените "/path/to/root/directory" на путь к корневому каталогу, для которого вы хотите сгенерировать дерево. Затем запустите программу, и она выведет дерево на консоль. Источник: Medium