Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Программное обеспечение Windows » Система - Программы для поиска и удаления дубликатов файлов

Ответить
Настройки темы

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


ES, у Вас есть информация о том, какой конкретно алгоритм CRC используется в CloneSpy?

Отправлено: 20:06, 16-04-2012 | #51

ES ES вне форума

Ветеран


Сообщения: 971
Благодарности: 15

Профиль | Отправить PM | Цитировать


Цитата Iska:
ES, у Вас есть информация о том, какой конкретно алгоритм CRC используется в CloneSpy? »
Нету.
Если очень интересно, в принципе можно написать разработчикам. Я думаю что они ответят

Отправлено: 20:19, 16-04-2012 | #52



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 169
Благодарности: 27

Профиль | Сайт | Отправить PM | Цитировать


Цитата Iska:
ES, у Вас есть информация о том, какой конкретно алгоритм CRC используется в CloneSpy? »
Алгоритмы подсчета CRC как правило ресурсоемкие. Если бы я писал программу поиска дублей, то сделал бы ее в 2 действия.

1. Поиск файлов с таким же размером с точностью до 1 байта.

2. В найденных файлах искал бы 1-2 сигнатуры в том же месте (на подобии антивирусов) что и в исходном файле. При совпадении, можно утверждать практически со 100% вероятностью что найденный файлы - полные копии исходного файла.

-------
Microsoft Visual C++ | Realtek Ethernet Drivers | .NET Framework 4.0


Отправлено: 18:08, 20-04-2012 | #53


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата softter:
Алгоритмы подсчета CRC как правило ресурсоемкие. Если бы я писал программу поиска дублей, то сделал бы ее в 2 действия. »
Выигрыш получается:

* при сравнении множества файлов;
* при работе в офф-лайн режиме (т.е. у нас есть один раз рассчитанный набор сумм, с которыми мы сравниваем другие файлы; CloneSpy к тому же позволяет впоследствии объединять наборы).

Цитата softter:
2. В найденных файлах искал бы 1-2 сигнатуры в том же месте (на подобии антивирусов) что и в исходном файле. При совпадении, можно утверждать практически со 100% вероятностью что найденный файлы - полные копии исходного файла. »
Дело в том, что остаётся ненулевая вероятность того, что файлы различны. Что, как Вы понимаете, делает полностью неприемлемым данный метод. Можно, конечно, в случае совпадения дополнительно сравнивать файлы целиком, но тем самым мы опять возвращаемся к тому, с чего начали: как сравнивать?

Второй недостаток данного подхода, который полностью ставит на нём крест, куда существенней: какую длину последовательности и с какого места файла брать? Малая длина последовательности заведомо приведёт к ошибкам первого рода, большая длина последовательности намертво похоронит при сравнении наш временной выигрыш на сколько-нибудь значимом количестве файлов — время сравнения будет расти в большей степени (по сравнению со сравнением контрольных сумм — вот тавтология, да?, при этом расчёт контрольных сумм однозначно и напрямую зависит от размера файлов).

Отправлено: 19:32, 20-04-2012 | #54


Аватара для Baber

Ветеран


Сообщения: 711
Благодарности: 14

Профиль | Отправить PM | Цитировать


Цитата ES:
вроде нашел такую программу: CloneSpy »
Есть эта программа или HELP на русском языке?

-------
Лермонтов родился у бабушки в деревне, когда его родители жили в Петербурге.
В связи с ремонтом парикмахерской, укладка женщин будет производиться в мужском зале.


Отправлено: 10:38, 21-04-2012 | #55


Старожил


Сообщения: 169
Благодарности: 27

Профиль | Сайт | Отправить PM | Цитировать


Цитата Iska:
Дело в том, что остаётся ненулевая вероятность того, что файлы различны. Что, как Вы понимаете, делает полностью неприемлемым данный метод. Можно, конечно, в случае совпадения дополнительно сравнивать файлы целиком, но тем самым мы опять возвращаемся к тому, с чего начали: как сравнивать?
Второй недостаток данного подхода, который полностью ставит на нём крест, куда существенней: какую длину последовательности и с какого места файла брать? Малая длина последовательности заведомо приведёт к ошибкам первого рода, большая длина последовательности намертво похоронит при сравнении наш временной выигрыш на сколько-нибудь значимом количестве файлов — время сравнения будет расти в большей степени (по сравнению со сравнением контрольных сумм — вот тавтология, да?, при этом расчёт контрольных сумм однозначно и напрямую зависит от размера файлов). »

Я написал ранее максимально упрощенный алгоритм, который всегда можно усложнить при желании.

Допустим, у нас есть 3 файла, и мы подозреваем, что в системе есть куча их дублей, но не знаем где.

1. Составляем 3 сигнатуры по 100 байт, все конечно зависит от размера файлов, но если они более нескольких КБ то:

1-я сигнатура с 300 по 400 байт (чтобы не попали технические заголовки, часто идентичные)
2-я сигнатура берется из середины файла
3-я сигнатура берется с его конца (между последними 400 и 300 байтами)

2. Ищем все файлы с точно таким же размером (их будет не очень много). Пути к найденным файлам запоминаем.

3. Файлы, имеющие одинаковый размер проверяем по сигнатурам (естественно по тем же адресам), на идентичность эталонам.

Да, согласен, результат не гарантирован на 100%, но вероятность этого события крайне мала. Даже MD5 сумма теоретически может быть одинакова для нескольких разных значений, так как размер хеша MD5 не бесконечен.


Есть очевидный плюс. Написать программу по данному алгоритму можно очень быстро, в течение дня.

-------
Microsoft Visual C++ | Realtek Ethernet Drivers | .NET Framework 4.0


Отправлено: 13:30, 21-04-2012 | #56


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата softter:
Допустим, у нас есть 3 файла, »
1700000 и 600000 файлов. И подозреваем, что среди них есть дубли. Реальный случай из практики.

При этом размеры файлов колеблются от нескольких байт и до… неважно. Как будем брать сигнатуры?

Цитата softter:
Да, согласен, результат не гарантирован на 100%, но вероятность этого события крайне мала. »
Поскольку вероятность события не нулевая — всё равно придётся затем сравнивать файлы с одинаковой сигнатурой либо побайтно, либо как-то ещё. Полную гарантию даёт, конечно, только побайтное сравнение.

Цитата softter:
Даже MD5 сумма теоретически может быть одинакова для нескольких разных значений, так как размер хеша MD5 не бесконечен. »
Разумеется. Для CRC32 поле ещё меньше.

Я оттого и интересовался, как именно рассчитывает контрольную сумму CloneSpy — как раз на предмет того, проводятся ли им какие-либо дополнительные проверки при совпадении контрольных сумм файлов одного размера. Ради интереса я даже проводил проверку: создал два файла одного размера, но разного содержания, имеющих одну и ту же контрольную сумму CRC32. CloneSpy опознал их как два разных файла.

Цитата softter:
Есть очевидный плюс. Написать программу по данному алгоритму можно очень быстро, в течение дня. »
Ежели напишете — берусь сравнить её с CloneSpy.

Отправлено: 13:54, 21-04-2012 | #57


Аватара для xoxmodav

PainStaking


Moderator


Сообщения: 3994
Благодарности: 442

Профиль | Отправить PM | Цитировать


Цитата Iska:
ри этом размеры файлов колеблются от нескольких байт и до… неважно. Как будем брать сигнатуры? »
Брать надо MD5 или SHA, файлы очень маленького размера (к примеру до 100-1000 байт) сравнивать по размеру и содержимому для исключения коллизий. Для более крупных вычислять хеши и сравнивать по ним.

-------
RadioActive - and therefore harmful, cynical and the extremely dangerous.


Отправлено: 13:20, 23-04-2012 | #58


Аватара для EROS

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день, подскажите пожалуйста, есть ли такая программа "Поиск и Удаления Дубликатов Файлов", но что б было так 1 раз настроил и забыл, а еще лучше, что была не видимая для пользователей. На форуме искал не нашел,

Можно любой софт платный или бесплатный.

Отправлено: 12:48, 18-10-2012 | #59


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата EROS:
подскажите пожалуйста, есть ли такая программа "Поиск и Удаления Дубликатов Файлов", но что б было так 1 раз настроил и забыл, »
Прочтите всю тему с самого первого поста.

Отправлено: 15:38, 18-10-2012 | #60



Компьютерный форум OSzone.net » Сфера Microsoft » Программное обеспечение Windows » Система - Программы для поиска и удаления дубликатов файлов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Нужен bat-ник для поиска и удаления файлов и папок по маске Nun-Nun Скриптовые языки администрирования Windows 14 08-11-2014 09:53
Графика - [addons] Программы для поиска дубликатов изображений pahan22 Наборы обновлений для Windows XP/2003/Windows 7 7 12-04-2011 19:52
VBS/WSH/JS - Помогите улучшить скрипт для поиска и удаления файлов UpDaTe Скриптовые языки администрирования Windows 4 23-03-2011 04:33
Ищу программу для поиска файлов дубликатов VbInt Хочу все знать 10 20-10-2009 10:54
Чем можно воспользоваться для поиска дубликатов файлов. Igor_I Программное обеспечение Linux и FreeBSD 13 06-10-2008 21:19




 
Переход