Как создать генератор дерева каталогов на 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
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ