Skip to content

Программа, сортирующая все файлы в корневой папке и всех ее подпапках

Notifications You must be signed in to change notification settings

FortovEgor/SortFilesInRootDir

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SortFilesInRootDir

Программа, сортирующая все файлы в корневой папке и всех ее подпапках.

Задача формулировалась так:

Необходимо выявить все зависимости между файлами, построить сортированный список, для которого выполняется условие: если файл А, зависит от файла В, то файл А находится ниже файла В в списке.

Ограничение на входные данные:

  • Все файлы должны быть .txt формата. При этом допустимы скрытые .DS_Store файлы, генерируемые mac OS в папках.
  • В файлах не должно быть опечаток в инстуркциях require. Пример правильно написанного файла:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse id enim euismod erat elementum cursus. In hac habitasse platea dictumst. Etiam vitae tortor ipsum. Morbi massa augue, lacinia sed nisl id, congue eleifend lorem.

require ‘Folder 2/File 2-1’

Praesent feugiat egestas sem, id luctus lectus dignissim ac. Donec elementum rhoncus quam, vitae viverra massa euismod a. Morbi dictum sapien sed porta tristique. Donec varius convallis quam in fringilla.

Решение основано на топологической сортировки массива. Все файлы были представлены вершинами графа, построена матрица смежности, основанная на зависимостях файлов. После сортировки данного графа вершины были соотнесены с файлами и был выведен необходимый список в нужном порядке.

Примечание № 1

Программа разработана в рамках предмета "Конструирование ПО", 2-ой курс ПИ, ФКН, ВШЭ, 2022-2023

Примечание № 2

Работа оценена на 8 баллов - замечания: можно было бы вынести части кода в функции, тем самым разбив большие куски кода на логические блоки.

About

Программа, сортирующая все файлы в корневой папке и всех ее подпапках

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages