Pull to refresh

Сохранение истории изменений файлов

Reading time2 min
Views11K
Наверняка почти каждый сталкивался с ситуацией, когда при разработки какого-либо проекта, Вы, случайно сохранили изменения в каком-либо файле по ошибке, и отменить действие — нельзя. Например, я однажды редактировал одну картинку в фотошопе, и при сохранении по невнимательности выбрал для сохранения совсем другой файл, навсегда переписав его. На перерисовку того файла было потрачено полтора часа, и все это из-за того, что делать резервные копии каждые 20 секунд вручную невозможно.

Именно после этого случая мне в голову пришла идея написать программу, которая будет мониторить каждые N секунд указанный каталог и его подкаталоги на предмет добавления новых файлов и изменения старых. В случае если есть новые файлы или изменения в старых, то она сделает резервную копию этого файла в указанную папку под имя_файла_дата_время. При таком раскладе потерять какие-либо данные будет сложно, т.к. есть полная история всех изменений.

Такая программа была написана мною 2 года назад. Она не раз спасала мои проекты от разных случайностей, но вот совсем недавно я внес в нее несколько изменений, и сейчас презентую ее Вам.

Программа написана на Delphi. Сразу хочу сказать, что качество кода просто отвратительное, а переписывать ее всю — нет времени, т.к. свои функции она выполняет отлично. На Delphi я не писал ничего уже 2 года, и признаться, сильно отвык — отличие от PHP огромное.

Вот так выглядит главное окно программы
image

А вот так выглядит каталог, куда сохраняются копии
image

Лично я предпочитаю заливать копии на Dropbox — так уж точно потерять что-либо не удастся.

Выше я говорил, что внес недавно некоторые изменения. Конкретно: сделал так, что программа при каждом новом запуске не копирует снова все файлы, а копирует только изменившиеся. Для этого, в папке, где хранятся резервные копии, она создает файлик lastScan_[имя_профиля].ini в котором хранятся имена файлов и их md5 хэши.

Свои настройки программа хранит в реестре. Когда запущен мониторинг, кнопка «Закрыть» сворачивает программу в tray. В остальном, думаю все понятно и очевидно.

От себя добавлю, что это незаменимая вещь при веб-разработке.

Скачать программу с исходниками можно здесь:
http://dl.dropbox.com/u/35608229/BackupMonitor.rar
http://narod.ru/disk/44036120001/BackupMonitor.rar.html
http://depositfiles.com/files/i9o9q17pg
Tags:
Hubs:
Total votes 22: ↑8 and ↓14-6
Comments26

Articles