Создание снимка папки; сравнение папки и снимка.

0:21 11.05.2005

Собственно тут короткое описание двух полезных (для меня) консольных утилит: первая создаёт снимок папки, вторая сранивает готовый снимок с папкой.

Вроде как вступление.

У меня есть папка-хранилище, в которую я постоянно докидываю необходимые программы, книги, материалы, клипарты и прочее. В общем, разделы хранилища постоянно пополняются или изменяются. И, понятно, в определённый момент времени встал вопрос выявления новых и изменившихся файлов (я, к примеру, обновлённые и новые файлы уношу на работу в тамошний, гораздо более полный (читай - здоровый) структурированный репозиторий). Т.е. в процессе появления новых файлов - скачивания из инета, копировании у знакомых и пр., - они скидываются в репозиторий согласно его внутренней структуре (т.е. по темам). Отправляясь на работу я хотел бы брать с собой из своего репозитория только новые поступления. Вроде бы задача тривиальна и должна бы уже быть решена многими молодыми и/или опытными программистами, но...

...видимо эти решения я не нашёл. Сколько я программ перепробовал... Под конкретно мою задачу есть Kisa, которая не видит невидимые (хе-хе) файлы (в которых у меня хранятся описания) + она только GUI'шная + несколько кривовата внешним видом + с некоторыми нестабильными странностями в работе, и куча разных синхронизаторов (в большинстве своём платных), работать с которыми я так и не привык - не было ощущения лёгкости процесса.

Тогда я подвёл идеологию своего видения "лёгкости процесса", и стал надеяться, что когда-нибудь появится некто, кто...

Идеология.

1) Создаём первый снимок папки; докидываем файлы в репозиторий; перед тем, как идти на работу...

2) сравниваем снимок с текущим состоянием папки, и список новых и изменившихся файлов передаём, например, nnbackup, которая копирует их в результирующий каталог согласно своим внутренним расписаниям (nnbackup - это не моя программа ;)). Затем...

3) создаём снимок папки-репозитория, с которым его будем сравнивать через несколько дней перед очередным отправлением на работу.

Собственно, "некто, кто" не появился, и, поняв, что если сам не, то никто не, написать пару нужных программ взялся я (после знакомства с C# по линии учёбы). Описанные выше задачи решают две утилиты:
    - "SnapshotDir, создание снимка папки";
    - "Snapshot-Directory Compare, сравнение снимка и папки".

Ссылка на них (в одном архиве + пример использования).
http://cp.people.overclockers.ru/cgi-bin/dl.pl?id=6485&filename=SnapDir__SnapCompare.rar

Вот часть ридми:

Информацию о программах можно получить, запустив их без параметров. Написаны на C#, требуют NET Framework 1.1. Проверялись на WinXP PRO RU SP2 с NET Framework v1.1 SP1 RU.

Исходный код пока не выкладываю, ибо он требует "причёсывания" и комментирования (если нужен, обращайтесь персонально). На AthlonXP 1250 Mhz папка размером в 5,5 Гб сканируется за 3,3 минуты. На Duron 700 - за 12 минут (HDD в режиме UDMA 4 (ATA-66); SDRAM PC100). Используется MD5-сумма для каждого файла.


В некоторых случаях удобнее использовать вторую утилиту для сравнение двух снимков, но этого пока нет. Может кто-нибудь, когда-нибудь...

:)
Telegram-канал @overclockers_news - это удобный способ следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают