Программа сохраняет файлы и папки в указанное место, но отсеивает их с помощью .gitignore, если такой есть в текущей папке. В папке назначения создает "слепок" по имени "mould.json" и туда записывает даты изменения файлов, а затем сравнивает их и перезаписывает измененные файлы. Почему так? Во-первых, чтобы уменьшить общее время работы, а во-вторых, чтобы уменьшить количество обращений к операциям записи и чтения, а стало быть, увеличить срок службы USB-флеш-накопителя, например.
Очень просто: достаточно создать в корневой папке файл "input.json" примерно с таким содержанием:
[
{
"Item1": "c:\\Project\\Project1",
"Item2": "d:\\Project1Backup"
},
{
"Item1": "c:\\Project\\Project2",
"Item2": "d:\\Project2Backup"
}
]
- Для Windows запустить build.cmd
- Для Linux запустить build.sh
- Либо же вручную прописать команды:
dotnet tool restore dotnet fake build
- Неизвестно общее время работы программы. Нет ползунка прогресса, нет ничего.
- Упорно не видит файлы и папки, которые начинаются с точки. То есть папку/файл с названием ".foo" программа смело пропустит.
- Не оценивается, сколько перемещаемого места может потребоваться, а значит, что в любую минуту может выбивать исключение, и ничего с ним не сделать.
- До конца не проверено, верно ли ведет себя .gitignore или нет.