Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Офтопик
Перезагрузить страницу Утилита сравнения двух каталогов
Ответ
 
Опции темы Опции просмотра
  (#16 (permalink)) Старый
Vladimir the Red Sunny Vladimir the Red Sunny вне форума
Member
 
Сообщений: 4,232
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2003
По умолчанию 03.11.2009, 11:19

Есть бесплатная программа WinMerge, предназначенная для сравнения сорсов, но бинарные файлы тоже сравнивает и говорит, идентичны или нет. Запускаешь, задаешь два начальных каталога для сравнения, она про все файлы пишет, какие одинаковые, какие разные, какие присутствуют только в одном или втором. Не знаю, правда, удобно ли ей сравнивать под-каталоги.
Возможно, имеет смысл использовать программу Unison - она для синхронизации файлов, и копировать их тоже может, и сравнивает, кажется, по-байтно, судя по тому, как она у меня тормозила при использовании Еще FullSync, по-моему, то же самое, но им я пользоваться не пробовал: http://fullsync.sourceforge.net/
Ответить с цитированием
  (#17 (permalink)) Старый
Jonano Jonano вне форума
Специалист
 
Аватар для Jonano
 
Сообщений: 3,541
Сказал(а) спасибо: 2
Поблагодарили 14 раз(а) в 14 сообщениях
Регистрация: 19.04.2005
По умолчанию 03.11.2009, 11:35

Цитата:
Но чувствую, ответа здесь не дождусь: желающих поучить будет хоть отбавляй, а помочь или посоветовать что-то дельное не найдется. Хотя проблема-то простейшая.
А тебе разве выше не дельные советы дали? Что ты подразумеваешь под дельным советом?

Цитата:
AfIS, ни о какой программе, дополнительно проверяющей сетевой канал передачи по протоколу, служащей посредником между программным обработчиком/дешифратором сетевого трафика по протоколу (как уж он, этот дешифратор потока, по правилам называется, я не знаю) и прикладным ПО, речи и в помине нет. Это и сложно, и ни к чему, и у меня, если уж честно, нет достаточных знаний ОС и сети, чтобы написать подобное сейчас самому. Да это и бессмысленная затея.
А про такие программы никто и не говорит. Всё уже сделано до нас (копирование любого файла по сети идёт по протоколу TCP/IP, а в нём уже предусмотрена эта проверка). Так что после копирования в целевой директории файла либо совсем не будет, либо будет всё идентично, с точностью до бита.

Цитата:
Все гораздо проще.
Я хочу скопировать каталог (или раздел диска) с одного компьютера на другой с помощью обычного проводника Windows. А после этого запустить проверку, которая бы сравнила бы содержимое обоих каталогов, каждый содержащийся в них файл побайтно, чтобы установить, что копирование произошло без ошибок. Все!
Собственно, копирование проводником гарантирует, что в файлах ошибок не будет. Если при копировании какого-то конкретного файла возникнет ошибка - об этом будет выведено сообщение и копирование приостановлено.

Цитата:
Задача элементарная, участвовать в дискуссии на предмет нужна или не нужна такая проверка, не хочу.
Сам же хотел дельного совета.
Ответить с цитированием
  (#18 (permalink)) Старый
IL_Agent IL_Agent вне форума
Member
 
Аватар для IL_Agent
 
Сообщений: 2,015
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.07.2005
По умолчанию 03.11.2009, 11:38

Поддерживаю WinMerge.
Ответить с цитированием
  (#19 (permalink)) Старый
Matematic Matematic вне форума
Member
 
Аватар для Matematic
 
Сообщений: 388
Сказал(а) спасибо: 31
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 15.01.2007
По умолчанию 03.11.2009, 11:59

IL_Agent, в таком случае объясни пожалуйста вкратце, что делает этот WinMerge, для каких задач он существует (является ли он аналогом Araxis Merge)?
И решает ли он мою задачу: побитовое сравнение всех одноименных файлов между двумя каталогами?

Сейчас только увидел пост Vladimir the Red Sunny, в котором есть пояснения на мой вопрос. Не сразу заметил, спасибо Vladimir the Red Sunny.
Ответить с цитированием
  (#20 (permalink)) Старый
Romendakil Romendakil вне форума
Member
 
Сообщений: 123
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.05.2004
По умолчанию 03.11.2009, 13:50

Хм. Может, если хочется попараноить немного, написать свою простенькую прогу, которая будет вычислять CRC или MD5 для каждого ценного файла? Или руками сделать это, используя тот же тотал коммандер и бесчисленное множество утилит, которые умеют считать подобные вещи. А после копирования снова посчитать и сравнить.
Еще лучше, если все запихнуть в некоторое небольшое количество архивов и посчитать суммы для них.
Ответить с цитированием
Ads.
  (#21 (permalink)) Старый
Exmap Exmap вне форума
Member
 
Сообщений: 1,045
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2007
По умолчанию 03.11.2009, 14:04

Таких плагинов для фара навалом. Гугол тебе в помощь.
Ответить с цитированием
  (#22 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 03.11.2009, 22:15

Цитата:
Смотрит Тотал только по времени файла, ничего побайтно не сравнивает.
Вы просто не знаете всех возможностей инструмента. Там есть отдельный режим - синхронизация директорий. В том числе с побайтовым сравнением - задается галочками:

Цитата:
Таких плагинов для фара навалом. Гугол тебе в помощь.
И Вы не знаете всех возможностей инструмента. В поставке есть штатный плагин - расширенное сравнение

А вообще, тема начинает напоминать идиотскую рекламу на ТВ:
- Все говорят, что эта фигня вкусная, а я вот что-то сомневаюсь..
- А есть вы ее пробовали?

Ответить с цитированием
  (#23 (permalink)) Старый
Matematic Matematic вне форума
Member
 
Аватар для Matematic
 
Сообщений: 388
Сказал(а) спасибо: 31
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 15.01.2007
По умолчанию 04.11.2009, 15:44

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

Alexiski, спасибо за нормальный совет. Отдельная благодарность Garik'у за то, что он подсказал мне хорошую, удобную программу для работы с файлами (я имею в виду Araxis Merge).

Теперь по сути вопроса.

На настоящий момент установил я себе на компьютер 3 программы с подобной функциональностью: Total Commander 7.50a (выбрал базовую простейшую сборку, без всяких наворотов), FAR и Araxis Merge. Наверное стоит на этом остановиться. Первое, что я сделал, еще до обращения на форум, попробовал воспользоваться двумя функциями Total Commander:
1. Файлы -> Сравнить по содержимому
2. Выделение -> Сравнить каталоги .

Оба варианта не принесли успеха: первая опция сравнивает между собой два файла, но никак не каталоги, вторая производит мгновенное поверхностное сравнение (не сверяя содержимое самих файлов), и то лишь по первому уровню вложенности (не включая подкатологи), что и соответствует ее местанахождению в меню "Выделение".

Ничего другого в TC я на тот момент не нашел.

Alexiski, после Вашего последнего сообщения я залез в Total Commander, нашел эту утилиту (Команды -> Синхронизировать каталоги), попробовал ей выполнить эту проверку на тестовом примере, вроде все заработало как надо. Также нашел аналогичную функцию в FAR'е (F11 -> Advanced Compare), там нужно тоже выставить крестики в некоторых местах, чтобы функция выполняла полную проверку по содержимому. В общем, как мне показалось, обе программы мою задачу решают.

Alexiski, если Вам не будет сложно, опишите пожалуйста точную последовательность операций, необходимую выполнить в обеих файловых оболочках, чтобы получить требуемый результат. Вплоть до нажатия каждой кнопки, установки каждой галочки в обеих программах. Уверен, это будет не длиннее небольшого абзаца для каждой программы. Чтобы я мог сверить все это со своими действиями и убедиться, что все делаю правильно (мне нужна полная уверенность).

Также остается вопрос, как эту штуку (сравнение двух каталогов с побайтовой проверкой каждой пары одноименных файлов) проделать в Araxis Merge, эту прогу пока что не смотрел. Буду очень благодарен всем, кто мне действительно поможет.
Ответить с цитированием
  (#24 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 06.11.2009, 12:28

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

Araxis Merge сравнивает все файлы по содержимому по умолчанию, там единственный нюанс - чтобы сравнивать каталоги, нужно открыть окно сравнения каталогов (по умолчанию открывается окно сравнения файлов)

А если так параноидально нужна полная уверенность, то почему бы не "испортить" пару байтиков любым hex-редактором, чтобы убедиться, что изменения в содержимом реально отлавливаются?
Ответить с цитированием
Ads
  (#25 (permalink)) Старый
Matematic Matematic вне форума
Member
 
Аватар для Matematic
 
Сообщений: 388
Сказал(а) спасибо: 31
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 15.01.2007
По умолчанию 06.11.2009, 20:16

Alexiski, со всеми тремя программами вроде бы разобрался, научился делать это сравнение, и вроде бы они все делают, как я и хотел.
А вот на счет изменить в файлах тестовых каталогов несколько байтов с помощью hex-редакторов, чтобы окончательно убедиться в корректности работы алгоритмов этих трех программ, мысль хорошая.

Только вот для полной достоверности эксперимента было бы очень хорошо, чтобы hex-редактор, изменив содержимое файла (заменив 1 - 2 байта на другое значение), не менял бы дату и время последнего изменения файла, чтобы она оставалась прежней. А длина файла при этом и так не изменится (ибо я предполагаю производить только замену одного байта другим). То есть хотелось бы, чтобы содержимое файла немножко менялось, но метаданные файла в ФС оставались бы полностью неизменными. Чтобы была полная уверенность, что программа находит различие не по метаданным (время, дата и пр.), а по содержимому.

В связи с чем вопрос, умеют ли это делать какие-нибудь hex-редакторы или нет? Или же подобное запрещено самим ядром Windows и обойти этот запрет можно лишь хакерскими методами, а потому редакторы бинарных файлов на такое не способны?

Ну и второй вопрос, Alexiski, не могли бы Вы мне подсказать хороший удобный hex-редактор, который любят и которым пользуются программисты, системщики, хакеры. Название программы и релиз, а уж ее саму я разыщу как-нибудь своими силами.
Ответить с цитированием
  (#26 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 06.11.2009, 23:01

Я чаще всего использую hiew Сусликова, причем достаточно старую версию, тех времен, когда он был еще бесплатным.
Ответить с цитированием
  (#27 (permalink)) Старый
Matematic Matematic вне форума
Member
 
Аватар для Matematic
 
Сообщений: 388
Сказал(а) спасибо: 31
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 15.01.2007
По умолчанию 06.11.2009, 23:35

Цитата:
Я чаще всего использую hiew Сусликова, причем достаточно старую версию, тех времен, когда он был еще бесплатным.
Понял, спасибо за предложенный вариант.

А как быть с первым вопросом: изменить содержимое файла, не меняя дату/время и прочие метаданные файла?
Ответить с цитированием
  (#28 (permalink)) Старый
andriano andriano вне форума
Member
 
Сообщений: 227
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 13.02.2006
По умолчанию 07.11.2009, 13:37

Цитата:
А как быть с первым вопросом: изменить содержимое файла, не меняя дату/время и прочие метаданные файла?
А в чем проблема то?
Может, надо просто зайти под администратором?
Ответить с цитированием
  (#29 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 07.11.2009, 14:40

Цитата:
А как быть с первым вопросом: изменить содержимое файла, не меняя дату/время и прочие метаданные файла?
hiew это умеет. Правда, дата доступа меняется, но она вообще меняется, как пропеллер. Если хочется точного совпадения, тот же far позволяет установить все три даты по своему усмотрению.
Ответить с цитированием
  (#30 (permalink)) Старый
Matematic Matematic вне форума
Member
 
Аватар для Matematic
 
Сообщений: 388
Сказал(а) спасибо: 31
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 15.01.2007
По умолчанию 08.11.2009, 00:11

Цитата:
А в чем проблема то?
Может, надо просто зайти под администратором?
Объясните поконкретней. Под администратором я все время сижу. Только какие окна и встроенные программы в Windows вызывать, на какие кнопки давить, чтобы их вызвать? Просто стандартный вызов "Свойства файла" правой кнопкой мыши не дает возможности изменить эти три параметра, их можно увидеть, но нельзя поменять. А все серьезные возможности по администрированию в Windows запрятаны в такую глубокую задницу, что их хрен оттуда выудишь без специального справочника. Я все же не профессионал, чтобы знать все эти тонкости.
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Синхронизация каталогов (Assembler, FASM) rolex123 Assembler 0 23.04.2012 12:28
Программа для сравнения двух BMP-файлов 5neverthesame94 Вопросы начинающих программистов 9 02.04.2012 22:29
WinDirStat - Статистика каталогов Artem_UA Накопители 0 07.12.2011 13:40
Рекурсивное удаление каталогов dkm С/С++ 2 08.01.2010 20:19
Переустановка XP копированием её каталогов Virgil Windows XP 4 21.03.2009 17:46
Быстрый Алгоритм сравнения двух массивов AcerExtensa С/С++ 6 21.07.2008 11:38
Структура каталогов, ZLib minizip vilru С/С++ 1 10.02.2008 18:44
Создание дерево каталогов BaRaDeD C++ Builder 2 20.04.2006 20:06
Алгоритм сравнения двух текстов :shock: rutman Visual Basic 0 28.10.2004 14:41
Определение каталогов по запросу Icer Visual C++ 1 09.01.2004 10:05
Исключение каталогов по маске в ARJ Anonymous Вопросы начинающих программистов 0 08.09.2003 11:34
Алгоритм сравнения двух файлов Excel Anonymous Visual Basic 4 07.03.2003 22:09



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов