12 481 готово · 0 пропущено · 0 ошибок · осталось 8,6 ГБ
D:\Фото 2024\2024-07\IMG_4821.ARW
Если копирование в Проводнике прервалось, он не скажет, до какого места дошёл. SmartCopy ставит работу в очередь, позволяет приостановить и продолжить, и удаляет источник при переносе только после проверки копии. Вынимайте USB, теряйте NAS, перезагружайтесь — прогресс остаётся.
Без установки · без прав администратора · Windows 10 / 11 (64-бит)
12 481 готово · 0 пропущено · 0 ошибок · осталось 8,6 ГБ
D:\Фото 2024\2024-07\IMG_4821.ARW
Устройство отключено — продолжит, когда вернётся (WinError 64)
Перенос — это три шага: каждый ждёт предыдущего.
пишет в назначение как .scpart временный файл. Окончательное имя он получает только после полной записи, поэтому недописанный файл никогда не выглядит целым.
Сравниваются размер и время изменения, а по запросу и SHA-256. При расхождении копия удаляется и пишется заново.
Источник теряют только проверенные файлы. У пропущенных он остаётся, а пустые папки убираются в конце.
Перенос в пределах одного диска — это просто переименование: быстро и вовсе без промежуточного состояния. Три шага выше нужны только при переходе между дисками.
Задайте заранее при создании задания или пусть спрашивает каждый раз. Если выбрать «спрашивать», в диалоге есть Применять и к последующим конфликтам.
| Правило | Что делает | Когда пригодится |
|---|---|---|
| overwrite | Перезаписывает назначение | Односторонние резервные копии, где источник всегда свежее |
| skip | Пропускает и не трогает источник | Дозаполнить только недостающее |
| rename | имя (1).расшкак новый файл | Когда нужны оба (по умолчанию) |
| keep_newer | Оставляет более свежий по времени | Слияние папки, изменённой с обеих сторон |
| keep_larger | Оставляет тот, что больше | Когда среди файлов есть обрезанные |
| ask | Показывает оба размера и времени и спрашивает | Когда каждый случай требует решения |
Прогресс живёт не только на экране — он пишется на диск. Закрытие приложения или потеря питания не отбрасывают к началу.
Каждый завершённый файл дописывается одной строкой. Поскольку идёт только дозапись, сбой питания портит максимум последнюю строку — её просто отбрасывают.
%LOCALAPPDATA%\SmartCopy\jobs\
Для большого файла .scpartсохраняется ровно то, сколько успело записаться. Продолжение начинается лишь после того, как соседний файл подтвердит, что размер и время изменения источника прежние.
Исчезновение устройства не считается ошибкой — задание переходит в Ожидание переподключения Когда оно возвращается, работа продолжается с места остановки.
WinError 21 · 53 · 59 · 64 · 1167
Временные помехи — например, файл, занятый другой программой — повторяются автоматически через 0,5 с, затем 2 с, затем 5 с. То, что всё равно не вышло, попадает в список, и кнопка Повтор запускает заново только их — структура папок остаётся прежней.
Если каждый раз нажимаете одно и то же — это работа для программы.
Когда файлы приходят и всё затихает, запускается сохранённое задание. Файл, который ещё пишется, не трогается — ждём, пока изменения прекратятся.
smartcopy-cli watch "Поставка" --folder D:\СбросКарты
Каждый день в 3 часа ночи или при входе в систему. Без прав администратора, и удалить можно прямо в Планировщике заданий Windows.
smartcopy-cli schedule --install "Еженедельная копия" --when daily --at 03:00
Правый клик по папке — появляются сохранённые задания. Выбор заполняет окно этими настройками, «Начать» нажимаете вы.
Один акт легко выбросить. Поэтому каждый несёт хеш предыдущего — уберите один из середины, и цепочка обрывается.
smartcopy-cli ledger --verify
Это не служба меток времени. Она мешает другому: поставить десять раз, а показать только девять удобных.
| Что охватывает | Как |
|---|---|
| Размер блока | Выбирается по носителю — 4 МБ для жёстких дисков, 1 МБ для USB, 256 КБ для сети. Пауза и отмена срабатывают на границах блоков, поэтому его не увеличивают без нужды. |
| Одновременные задания | По умолчанию два: когда несколько заданий бьют в один диск, медленнее становится всё. |
| Приоритет | У каждого задания есть приоритет, более высокие идут первыми. При равенстве сохраняется порядок добавления. |
| Массовое перечисление | scandir обходит дерево и не переходит по символьным ссылкам и соединениям, поэтому не попадает в цикл копирования. |
| Длинные пути · Юникод | Обрабатываются с префиксом пути, обходящим предел в 260 символов. Юникод-имена остаются как есть. |
| Обновление прогресса | Сводятся к одному разу в 0,2 с — чтобы на 100 000 файлов отрисовка экрана не стоила дороже самого копирования. |
| Файлов одновременно | В рамках одного задания несколько файлов копируются одновременно (до 16). Больше всего это даёт при множестве мелких файлов или по NAS. |
| Ограничение скорости | Потолок в байтах в секунду. На случай, когда резервное копирование идёт во время совещания. Рабочие потоки делят одно ведро. |
| Фильтрация | Шаблоны включения и исключения, исключение папок целиком, диапазоны размера и даты, пропуск скрытых файлов. |
| Предпросмотр | Вычисляет, что было бы перенесено, ничего не записывая. |
| Проверки перед стартом | Свободное место в назначении, не находится ли назначение внутри источника, не защищённый ли это путь и существуют ли источники — всё проверяется заранее. |
Он медленнее robocopy. Потому что для каждого файла он записывает данные для возобновления, проверяет скопированное и пишет в журнал — ради этих трёх вещей программа и создана. На внутреннем SSD это примерно в 5-15 раз медленнее на множестве мелких файлов и примерно в 7 раз на одном большом. Замеры и методика лежат в репозитории.
Окно показывает, что идёт сейчас; консоль — всё сразу: очередь, история, восстановление, журналы, проверка.
smartcopy-cli admin либо кнопкой Консоль администратора в окне.
Консоль открывается только на 127.0.0.1 и требует токен, создаваемый заново при каждом запуске. Внешний домен, указывающий на этот адрес (DNS rebinding), останавливает проверка Host , а запрос, который другой сайт заставляет отправить ваш браузер, останавливает проверка Origin .
Для bat-файлов и Планировщика заданий берите smartcopy-cli.exe.
Настройки и журналы лежат в %LOCALAPPDATA%\SmartCopy и больше нигде.
SmartCopy.exe
Перетащите файлы, а ход работы смотрите на карточках. Контекстное меню Проводника вызывает этот же файл.
smartcopy-cli.exe
copy · move · recover · verify · shell. Удобно для скриптов и планировщиков.
Щёлкните правой кнопкой по файлу или папке — Добавить в SmartCopyа в папке, куда переносите, Назначить целью SmartCopy. Добавляйте в несколько приёмов — всё соберётся в одном окне.
Регистрируется только в HKEY_CURRENT_USER — одна команда shell --uninstall всё отменяет