This program is starting using makefile.
Use targets: make clean all
To compile and run the program
На вход подаётся
- входной файл в котором содержится список папок для обхода
- выходной файл в который нужно записать хеши полученные в процессе обхода всех директорий
java Walker <input> <output>
Формат строчек в файле с хешами
хеш-файла путь_до_файла
Считать хеш следует только у папок и обычных (regular) файлов.
Если файл не подходящий или его не удалось прочитать, то его хеш равен 00000000
.
Хеш следует считать с помощью ru.ifmo.task1.utils.HashUtils#calculate
,
предварительно дописав недостающую функциональность.
Если при работе программы возникло исключение несовместимое с её жизнью, то следует прекратить работу с указанием ошибки в понятном для пользователя формате.
Скрипт для запуск на linux - run1.sh
./run1.sh <input> <output>
ru.ifmo.task2.Terminal
На вход, как аргумент командной строки, подаётся путь до корневой директории (возможно некорректный) от которой следует начать строить вируальную файловую систему вниз по иерархии.
- Подписаться на изменения корневой папки и всех остальных что ниже по иерархии
- Следить за изменениями и в соответствии с ними изменять виртуальную файловую систему, а также выводить в
System.out
произошедшее изменение - Слушать команды получаемые в
System.in
и выводить вSystem.out
результат выполнения команды - Если при выполнении программы произошла ошибка, то выводить её в понятной для стороннего пользователя форме
- cd <path_to> // Изменить текущую директорию, но нельзя переместиться выше корневой
- mv <source_file> <target_file> // Переместить файл в другое место / Перезаписать <target_file>
- cp <source_file> <target_file> // Скопировать файл в другое место
- mkdir <directory_name> // Создать директорию / несколько директорий
- rm <target_file/directory> // Удалить файл / директорию
- ls [name/size/mod(+-)] // Вывести список файлов в текущей директории
- info <target_file/directory> // Вывести информацию о файле / папке
- Без аргументов — Вывести info всех файлов в текущей директории через символ перевода строки
- Аргументы name/size/mod означают что файлы предварительно следует отсортировать (в виртуальной ФС) и сохранить их порядок
-
- Если после
ls +name
вызвать простоls
, то порядок сортировки должен сохраниться
- Если после
-
- '+' значит что сортировать следует от большего к меньшему, '-' что от меньшему к большему
-
- аргументов можно передать несколько.
ls name+ size-
- значит сначала файлы следует отсортировать по имени, а затем по размеру. Сортировка должна быть стабильной
- аргументов можно передать несколько.
- name - -//- в лексиграфическом порядке относительно имени
- size - -//- по размеру
- mod - -//- по дате последнего изменения
- Название файла
- Размер от Гб до байтов (2G 16M 76Kb 123b)
- Параметры доступа (r+w-x+) — '+' если можно, '-''если нельзя
- Дата последний модификации (23.09.2018 13:32) — DD.MM.YYYY MM:YY
- Выводить параметры следует через три символа ' : '
- Командам могут быть переданы некорректные аргументы, которые следует обрабатывать через вывод понятной ошибки
- Командам передаются файлы в формате пути до них
-
- '..' - корректная часть пути (на одну директорию вверх)
-
- Все пути относительны текущей директории
-
- Путь выходящий за пределы корневой директории - некорректен
-
- checkstyle также актуален (как и для всех будущих заданий)