Создание снимка папки; сравнение папки и снимка.
Вроде как вступление.
У меня есть папка-хранилище, в которую я постоянно докидываю необходимые программы, книги, материалы, клипарты и прочее. В общем, разделы хранилища постоянно пополняются или изменяются. И, понятно, в определённый момент времени встал вопрос выявления новых и изменившихся файлов (я, к примеру, обновлённые и новые файлы уношу на работу в тамошний, гораздо более полный (читай - здоровый) структурированный репозиторий). Т.е. в процессе появления новых файлов - скачивания из инета, копировании у знакомых и пр., - они скидываются в репозиторий согласно его внутренней структуре (т.е. по темам). Отправляясь на работу я хотел бы брать с собой из своего репозитория только новые поступления. Вроде бы задача тривиальна и должна бы уже быть решена многими молодыми и/или опытными программистами, но...
...видимо эти решения я не нашёл. Сколько я программ перепробовал... Под конкретно мою задачу есть 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-сумма для каждого файла.
![]() |
![]() |
![]() |
В некоторых случаях удобнее использовать вторую утилиту для сравнение двух снимков, но этого пока нет. Может кто-нибудь, когда-нибудь...
:)
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Сейчас обсуждают