powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как максимально быстро ответить на вопрос - идентичны файлы или нет?
25 сообщений из 30, страница 1 из 2
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33467390
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько показывает опыт, смотреть на размер файла и на Modification date - не достаточно надежный способ. CRC32 не подходит - размеры у меня по несколько гигабайт. Спускаться вниз - сначала смотреть размер, а потом если он не совпадает проверять CRC32 тоже не подходит - в 90 процентах случаев файлы идентичны.
Я заметил, что FAR очень ловко проверяет это дело (по комманде сравнить директории). Ни у кого нет ноу - хау?
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33467517
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Спускаться вниз - сначала смотреть размер, а потом если он не совпадает проверять CRC32 тоже не подходит - в 90 процентах случаев файлы идентичны.
Я заметил, что FAR очень ловко проверяет это дело (по комманде сравнить директории). Ни у кого нет ноу - хау?

MD5 or crc64?
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33467724
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsik--Спускаться вниз - сначала смотреть размер, а потом если он не совпадает проверять CRC32 тоже не подходит - в 90 процентах случаев файлы идентичны.
Я заметил, что FAR очень ловко проверяет это дело (по комманде сравнить директории). Ни у кого нет ноу - хау?

MD5 or crc64?
Сколько займет подсчет crc64 или md5 от 850 файлов суммарным объемом 10 GB?
Вообще, у меня задача стоит в синхронизации директорий, в которых лежат аудио- и видеоролики. И в максимально быстрой синхронизации - обновлять только то, что устарело.
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33467738
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ИльичСколько займет подсчет crc64 или md5 от 850 файлов суммарным объемом 10 GB?
Сделай и узнаешь :)
Сергей ИльичВообще, у меня задача стоит в синхронизации директорий, в которых лежат аудио- и видеоролики. И в максимально быстрой синхронизации - обновлять только то, что устарело.
Я бы не стал заморачивался на такие вещи. Размера файла и даты модификации хватает для любого нормального софта. Если я обнаружу что кто-то меняет мои файлы и восстанавливает при этом их размер и дату модификации .... ну это значит не программа а вирус :)
В крайнем случае можешь перед (или после) вызова такой вирусоподобной программы из батника вызывать touch.
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33467808
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl
Я бы не стал заморачивался на такие вещи. Размера файла и даты модификации хватает для любого нормального софта. Если я обнаружу что кто-то меняет мои файлы и восстанавливает при этом их размер и дату модификации .... ну это значит не программа а вирус :)
Есть там такие файлы, которые всегда имеют одинаковый размер и одинаковую дату модификации (наклепали один раз и на целый год), но при этом разное наполнение.
Усложнять их процедуры я не хочу - они должны как и раньше FAR'ом копировать текущий snapshop на жесткий диск курьера и все.
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33467846
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Ильичфайлы идентичны.
Дайте, пожалуйста, Ваше определение слову "идентичны". А то не совсем понятно, что Вы под этим подразумеваете...
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33467848
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Сколько займет подсчет crc64 или md5 от 850 файлов суммарным объемом 10 GB?

даже если файлы одного размера, то при сравнении сломаются на сравнение довольно быстро, не думаю что придется весь обьем считать.
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33468181
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft Сергей Ильичфайлы идентичны.
Дайте, пожалуйста, Ваше определение слову "идентичны". А то не совсем понятно, что Вы под этим подразумеваете...
Мы, когда называем файлы "идентичными" (identical, equal), подразумеваем что
1) файлы - это конечные множества целых положительных чисел в диапазоне (0..255), так же известных как "октеты". Обозначим их как множество A и множество B.
2) Оба множества имеют одинаковый размер n, таким образом A = {a(1), a(2) ... a(n)}, B = {b(1), b(2) ... b(n)}
3) Для любого целого числа x в диапазоне (0..n) выполняется равенство a(x)=b(x).
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33468237
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Ильич2) Оба множества имеют одинаковый размер n, таким образом A = {a(1), a(2) ... a(n)}, B = {b(1), b(2) ... b(n)}
3) Для любого целого числа x в диапазоне (0..n) выполняется равенство a(x)=b(x).
в пунктах 2 и 3 использовано одно и тоже число n или разные? если одно, то третий пункт надо поправить (1..n)

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

В данной ситуации я бы смотрел на происхождение файлов и начинал проверку равенства (не важно, прямым сравнением или с помощью контрольных сумм) с тех частей файлов, изменения которых наиболее вероятны. Например, с первых и последних 64Кбайт.

насчет FAR-а - подсуньте ему две пары файлов по 10Гбайт. Причем в первой паре файлы должны быть идентичны, а во второй - различаться одним байтом где-нибудь в середине. Интересно, что он скажет на это.
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33468342
homichus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ИльичНасколько показывает опыт, смотреть на размер файла и на Modification date - не достаточно надежный способ. CRC32 не подходит - размеры у меня по несколько гигабайт. Спускаться вниз - сначала смотреть размер, а потом если он не совпадает проверять CRC32 тоже не подходит - в 90 процентах случаев файлы идентичны.
Я заметил, что FAR очень ловко проверяет это дело (по комманде сравнить директории). Ни у кого нет ноу - хау?

Фар не сравнивает содержимое файлов. При сравнении учитывается только дата/время файла и его размер. Вот и все ноу - хау:)
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33468344
homichus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
homichus

Фар не сравнивает содержимое файлов. При сравнении учитывается только дата/время файла и его размер. Вот и все ноу - хау:)

и имя.
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33468357
homichus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не по теме, т.е. по поводу сравнения: В любом случае, если даже использовать CRC и считать его во время проверки, время будет больше чем при прямом сравнении. Ведь что бы его посчитать, нужно весь файл прочитать. Хотя метод с CRC может несколько ускориться за счет торможения железа при одновременном считывании двух файлов. Еще можно хранить на винте в отдельном файле рассчитанные значения CRC, при этом при сравнении нужно будет считать CRC только одного файла. А тут можно уже придумать очень много всего. Но все равно, если не привязываться к структуре файла, все сводится полному считыванию сравниваемых файлов и сравнению их каким-либо способом.
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33468406
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ИльичУсложнять их процедуры я не хочу - они должны как и раньше FAR'ом копировать текущий snapshop на жесткий диск курьера и все.
Чем делаются твои snapshot?
Возможно кроме даты модификации надо еще сравнивать даты создания и даты доступа?
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33468756
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергею Ильичу.

Для традиционной ФС - ИМХО нету способа быстро проверить
идентичность двух файлов. Могу лишь предложить поставить
каталог с подозрительными файлами на NTFS-мониторинг
и отслеживать события write . Так работают многие
антивирусы.

Ловкость ФАРА при сравнении папок - скорее всего надувательство.
Либо неполноценная проверка. Импользуйте специальный плагин
для глубокой проверки.

Где-то на горизонте маячит Windows Vista с анонсированной
файловой системой WinFS . Надеюсь что в новую ФС будет
включен механизм версионности файлов (наподобие Transactions
Identifiers в базах данных). В этом случае для сличения файлов
достаточно будет проверить два целых числа.

Всем

Забыл поздравить скру листов и скру листок с НГ. Спешу реабилитироваться.
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33468848
Borya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для справки, фраза из хелпа Far насчет Compare folders:
Files are compared only by name, size and time, and file contents have no effect on the operation.
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33469096
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Borya7Для справки, фраза из хелпа Far насчет Compare folders:
Files are compared only by name, size and time, and file contents have no effect on the operation.
Тогда это мистика какая-то. Я сравнивал размер, Creation Time и Modification time на неравенство. Тем не менее, моя проверка периодически обламывалась на е*учем файле goroscop.avi, который должен обновляться раз в неделю. При прибытии на место и сравнивании папок с goroscop.avi FAR каким-то образом улавливал разницу.

В итоге пришлось в снапшоты добавить файлы с подсказками.
PS: Правда, это может быть саботаж со стороны курьеров, которые хотели побольше аккуратной работы руками с целью повышения окладов.
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33469676
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ИльичТогда это мистика какая-то. Я сравнивал размер, Creation Time и Modification time на неравенство. Тем не менее, моя проверка периодически обламывалась
Мистики не бывает. Ты уверен что ты правильно сравниваешь? Может где дату создания с датой модификации перепутал или читаешь их не совсем правильно.
Потому что единственный способ для даты модификации остаться неизменной, это после изменения файла вручную сдвинуть ее на прежнее значение. Либо остановить часы на компе модифицировавшем файл :)
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33469683
Borya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кароче произвел эксперимент над фаром.
1) создал два каталога к1 и к2
2) в к1 создал файл ф1 размером в 1байт содержимое '1'
3) ф1 скопировал в к2, отредактировал, содержимое '2'
4) сделал файлам идентичные атрибуты (время доступа, время мод, время созд)
5) Сравнил, и что в итоге - Каталоги идентичны
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33522140
Gradient
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В NT-системах три времени создания, модификации и последнего доступа. Фар действительно проверяет только имя, размер и время модификации. Может, еще и атрибуты.
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33522148
Gradient
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавлю: я бы убирал у сравненных атрибут "архивный" и смотрел бы только его. При любой модификации файла он, по идее, дожен устанавливаться (для этого и был придуман).
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33523244
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GradientДобавлю: я бы убирал у сравненных атрибут "архивный" и смотрел бы только его. При любой модификации файла он, по идее, дожен устанавливаться (для этого и был придуман).

ИМХО ненадежно. Этот атрибут создавался для DOS и
в скором времени будет похоронен без почестей.
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33523385
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут подумал... дисковый контроллер подсчитывает
функцию CRC32 для каждого сектора данных. Если
сползти на о ЧЧЧ ень низкий уровень программирования,
можно довольно шустро определять, изменялся
ли сектор. Но это уже как горицца ... на любителя.
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33523393
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ тут подумал... дисковый контроллер подсчитывает
функцию CRC32 для каждого сектора данных. Если
сползти на о ЧЧЧ ень низкий уровень программирования,
можно довольно шустро определять, изменялся
ли сектор. Но это уже как горицца ... на любителя.
1) Сомневаюсь, что дисковые контроллеры в массе своей спообны отдавать CRC наружу. Даже не факт что они сами ее видят, она вполне может оставаться в пределах приемо-предатчика.
2) Предлагаете программировать на низком уровне все имеющиеся и будущие модели котроллеров?
3) CRC32 - не гарантия, что данные идентичны.
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33525163
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft
1) Сомневаюсь, что дисковые контроллеры в массе своей спообны отдавать CRC наружу. Даже не факт что они сами ее видят, она вполне может оставаться в пределах приемо-предатчика.

Согласен.


2) Предлагаете программировать на низком уровне все имеющиеся и будущие модели котроллеров?


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

К примеру СУБД Oracle позволяет хранить контрольные суммы
для каждого блока данных (если включен соотв параметр в pfile),
из которых состоит база. И это не параноидальная мера а необходимая.

Кстати, насколько мне известно CRC32 вычислсяеется аппаратно
для модемных протоколов (ZModem) и протоколов ЛВС семейства TCP/IP.


3) CRC32 - не гарантия, что данные идентичны.


Согласен, коллега. Более того .. и MD5 и SHA не гарантируют
идентичность сверяемых данных. Однако эти функции находят
широкое применение в пиринговых сетях при поиске идентичных
файлов.
...
Рейтинг: 0 / 0
Как максимально быстро ответить на вопрос - идентичны файлы или нет?
    #33525250
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКстати, насколько мне известно CRC32 вычислсяеется аппаратно
для модемных протоколов (ZModem) и протоколов ЛВС семейства TCP/IP.
Для модемных протоколов КС вычисляются только на уровне протоколов V.** (точные номера не помню) и снаружи не доступны. Для TCP/IP КС вычисляется только в дорогих серверных сетевых адпатерах с так называемым "TCP/IP-акселератором".

и MD5 и SHA не гарантируют
идентичность сверяемых данных. Однако эти функции находят
широкое применение в пиринговых сетях при поиске идентичных
файлов.
Точнее, для поиска похожих файлов.
Для пиринговых сетей вероятность ошибки 2^-32 (для CRC32) вполне допустима.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как максимально быстро ответить на вопрос - идентичны файлы или нет?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]