Skip to content

выводит дерево содержимого выбранного каталога. Вывод происходит в отсортированном по имени виде.

Notifications You must be signed in to change notification settings

VarenytsiaMykhailo/dir-Tree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dir-Tree

Бета описание (программа будет дорабатываться):

разрабатывал ее как задание от технопарка к курсу сетевого программирования на go

выводит дерево содержимого выбранного каталога. Вывод происходит в отсортированном по имени виде.

ключ -f выводит папки и файлы + их размер
без ключа -f выводит только папки

Для запуска нужно иметь компилятор для golang.

В консоли пишем:
go run путь_к_программе/main.go путь_к_каталогу_для_сканирования
или
go run путь_к_программе/main.go путь_к_каталогу_для_сканирования -f
можно запустить и в другой среде, например в goland

Скрины: (в репозиторий добавил папку testdata для теста, скрины для нее)

без ключа -f (только дерево папок):
screenshot of sample

с ключем -f (дерево папок и файлов + их размеры)
screenshot of sample

Детали реализации:

sliceForGraffiti - слайс, который требуется для корректного, красивого вывода графики. По лежащим в нем булевым значениям функция printGraffiti определяет, где выводить "│ ", а где просто " ", где выводить "├───", а где выводить "└───" . В слайсе хранится true, если текущий рассматриваемый файл или папка является последним в текущей директории т.е. является последним элементом слайса dirs или files. Логика этого механизма тяжело продумана и не рекомендуется для внесения изменений.

Есть возможность перенаправить поток вывода (например записать результат в текстовый файл)
Для этого в коде программы
func main() { out := os.Stdout
в переменную out нужно присвоить что хотите.

P.S. Если бы не заморачиваться с красивым выводом, программу можно упаковать в 30-40 строк

About

выводит дерево содержимого выбранного каталога. Вывод происходит в отсортированном по имени виде.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages