Программа для сравнения папок. Как сравнить файлы и папки

Этим вопросом я увлекся на прошлых выходных, когда возникла задача синхронизировать большие объемы информации (фотки, видео) на двух носителях (основной винт и бекап). Фоток и видео - тысячи файлов, общим объемом пару сотен гиг. В ручную будет быстрее переснять все заново, чем сравнить. Как быть? Перед тем как написать свою программу на Deplhi (как я часто поступаю, когда надо атоматизировать какую-то рутинку на компе) я стал немного поискать в сети. Десятки левых программ и наконец-то оно! Total Commander. Я как-то без него все это время обходился, но теперь понимаю, что за непримечательным интерфейсом скрывается офигительная мощь! Итак, как сравнить две папки в Total Commander"е?

Внимание, могут пострадать твои драгоценные файлы! Так как файлы мне были дороги как память, то я очень подозрительно относился к тому, что делает программа и к тому, что делаю сам с помощью программы. Дело в том, что программы ошибаются (скорее программисты, их писавшие), а оператор (то бишь я), делая рутинную операцию продолжительное время, начинаю ускоряться и кликать случайно не на те клавиши (а потом очень жалею). По этой причине, для начала, настоятельно рекомендую скопировать пару синхронизируемых папок в отдельное место-песочницу и поиграться там, столько времени, сколько потребуется (пока не появится чувство уверенности - "я знаю, что делаю"). Мне хватило часа, чтобы разобраться во всех настройках программы и набить руку. "Набить руку" тут значит сделать множество ошибок при копировании и проанализировав их больше не наступать на те же грабли. Еще раз повторюсь - на втором часу синхронизации внимание притупляется и какую-то галочку можно случайно не поставить, а от этого зависят результаты сохранения! Делай перерывы каждый час, иначе потеряешь файлы. "Перерывы" - значит встать из за компа, пока он сравнивает и поделать что-то физически активное.

Поехали. Как я синхронизировал файлы в папках? Открывал слева папку (1) , которая в меньшинстве (рабочая папка), а справа выставлял ту же папку но на бекап-винте (2) .

Если мне слева (1) нужны были не все папки для синхронизации, то я правой кнопкой мыши выделял их (3) (как странно, по правой кнопке мыши кроме контекстного меню еще и выделение срабатывает - но вскоре я привык).

Опишу по очереди:

"Выделенные (в главном окне)" приведет к тому, что сравниваться будут только те папки слева (со всеми, что справа, которые отмечены (3) .

"Пустые каталоги" - я так понял (но не уверен), что сравниваться будут даже пустые каталоги. Но пользы я не получил от нее.

"Асинхронно" - понятия не имею что это значит.

"С подкаталогами" - говорит программе о том, что мы хотим проверить папки с подпапками и подподпапками на всех уровнях вложенности....

"По содержимому" - если галочка стоит, значит файлы будут идентичными, если каждый их байт идентичен (это может быть долго), в противном случае два файлы идентичны, если у них одинаковое имя, размер и дата последнего изменения.

"Игнорировать дату" - должно стоять, в противном случае файлы с одинаковой датой не будут проверяться "По содержимому"

Есть вариации на тему сравнения по содержимому (кнопочка ">>" рядом с чекбоксом), но predefined плагинов не было, а потому я не оценил.


После того, как будет нажата кнопка "Сравнить" пойдет сбор информации по папкам, с последующим сравнением файлов между собой (в зависимости от настроек (5) ). Результатом сравнения будет картинка (6)

Только те, что есть слева (1)

Только те, что есть справа (2)

Те, что и слева (1) и справа (2) равны

Те, что есть и слева (1) и справа (2) , но не равны

Только дубликаты (те, что есть и слева (1) и справа (2) )

Только уникальные (те, что есть или слева (1) или справа (2) )

Кликнув на любой файл можно с ним сделать ряд действий (7) :

1) "Отметить для копирования (направление по умолчанию)

2) "Снять маркер копирования/удаления"

3) " Отметить для копирования -> (слева направо)"

4) "Отметить для копирования <- (справа налево)"

5) "Поменять направления копирования"

6) "Внутренний просмотр слева"

7) "Внутренний просмотр справа"

8) "Сравнить левйы и правый файлы"

9) "Копировать свойства файла -> (слева направо)"

10) "Копировать свойства файла <- (справа налево) "

11) "Печать выделенного"

12) " <- Удалить слева"

Сравнение папок - Compare Suite простое и доступное решение

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

Да, корректное и быстрое сравнение папок часто требуется для множества компьютерных специалистов. Сегодня появилось наконец и качественное, адекватное решение - программа, которая может быстро провести сравнение папок по их содержимому. И надо сказать, еще ни один популярный файловый менеджер не мог предоставить пользователю осуществить сравнение папок с теми многочисленными функциями и опциями, которые дает эта программа. Сравнение папок с ней стало приятным и удобным. Называется это офисное чудо - Compare Suite.

С ее помощью можно не только проводить сравнение папок и файлов. Compare Suite позволяет сравнивать архивы, папки находящиеся в сети, управлять удаленно исходным кодом, а так же находить отличия в содержании между двумя файлами огромного числа применяемых сегодня форматов. Compare Suite может сохранять структуры любых выбранных папок, либо по отдельности и в наглядной форме показывать пользователю. На иллюстрациях к этой статье показаны основные операции, происходящие во время работы программы. Подробным образом сравнение папок с помощью программы Compare Suite описано в статье "Сравнение двух папок" . Но даже если у вас при работе с программой не будет под рукой этого описания, то не беда. Программа производящая детальное сравнение папок Compare Suite снабжена подробнейшей справочной системой, на русском, разумеется, языке.

Любую прикладную утилиту, получившую заслуженную популярность, отличают, помимо стандартных возможностей и функций, некоторые "изюминки", которые делают работу с ней особенно удобной. Compare Suite не стала исключением. Сравнение папок - это далеко не все, что эта программа умеет делать. Например, при сравнении текстовых документов она может подсвечивать специальные теги всех языков программирования, использовать их служебные и регулярные выражения, сравнивает файлы, DOS Windows, Unix и Macintosh. Генерирует подробные отчеты о различиях, которые были обнаружены при сравнение папок. Для многих и многих людей, программа Compare Suite стала приложением, которым они пользуются каждый день.

В статье рассматриваются возможности программы Compare Suite для сравнения двух папок на локальном компьютере

Программа Compare Suite дает возможность не только быстро сравнить и найти изменения, произведенные в электронных документах, таких как файлы PDF, Word , Exel , простых текстовых файлах, но и произвести сравнение содержимого папок вашего компьютера. Это достаточно мощный инструмент анализа содержимого папок, который пригодится многим специалистам-компьютерщикам. Запустим программу Compare Suite. В меню опции можно сразу задать необходимые параметры сравнения, как для сравнения электронных документов, типа Word файлов , так и для сравнения папок. Например Просматривать вложенные папки - если Вам нужно, найти изменения во вложенных папках. Раскрытие папок после сравнения - здесь авторы рекомендуют выбрать опцию "Раскрывать только измененные", по каким признакам будет сравниваться содержимое папок - "Только по дате и размеру", "Проверять содержание...", "Всегда проверять содержание..." В пункте "Цветовая схема" можно выбрать цвет, которым будет подсвечены найденные различия изменения.

Выберем в меню "Файл" задачу "Новое сравнение папок" (Shift+Ctrl+O) . В появившиеся две панели перетащим папки, состав которых хотим сравнить (или выберем с помощью "проводника"). Для примера мы взяли две папки, с несколькими тысячами файлов в каждой. Программа Compare Suite произвела сравнение этих папок за пару секунд, и в окошках сразу высветились найденные различия.

Как видно на иллюстрации, вложенная папка, которая отсутствует в сравниваемой, обозначена жирным "плюсом" синего цвета. Так же синим плюсом отмечена и папка, состав которой не совпадает с оригиналом. Зеленым подсвечена папка, открытая в данный момент, с которой идет работа (в ней находился документ, который вы сейчас читаете). В Панели статуса отражена общая статистика: "Новые файлы", "Измененные файлы", "Удаленные файлы"

По результатам своей работы программа Compare Suite создает подробные отчеты. В случае сравнения папок можно получить три вида отчетов. Стандартный, Полный и Расширенный. В стандартном отражены конкретные изменения касающиеся сравниваемых папок (статистика сравнения, количество файлов, дата последнего изменения и т. д.), статистика сравнения. Полный отчет это стандартные отчеты для всех измененных файлов папок, что мы сравнивали, но без текстов этих файлов Расширенный отчет содержит уже полные тексты, где все изменения подсвечены. Заметим, что расширенный отчет был сгенерирован программой тоже очень быстро. По результатам анализа и сравнения можно легко произвести синхронизацию содержимого сравниваемых папок - запустив подробный пошаговый "мастер синхронизации". Вот только мастер этот пока не русифицированный, что скорее всего будет устранено в следующих версиях.

Бесплатная программа для сравнения текстовых файлов и папок. Имеет удобный интерфейс, подсветку синтаксиса многих языков программирования, а также обширные настройки. Кроме того, программа умеет создавать отчеты и работать в паре с многими системами контроля версий.

Человеческая лень способна творить чудеса! Лень в хорошем смысле слова:). Ну, согласитесь, что нерезонно делать вручную рутинную работу, если есть возможность поручить ее компьютеру. Вот и сегодняшняя наша программа была найдена именно при попытке переложить на «плечи» ПК трудоемкий процесс по сравнению разных текстовых файлов.

А дело было так… Недавно мы с Русланом Богдановым переводили сайт на HTML5 с использованием разметки Schema.org . При этом приходилось часто сравнивать старую (еще не правленую) версию каждой странички с новой, в которой уже были внесены определенные правки.

И вот после пары часов работы в двух окнах Блокнота, мне пришла в голову мысль о том, что, должна быть программа для автоматического поиска различий в текстовых файлах. Сей вопрос был задан вездесущему Гуглу , и вот такая программа нашлась:). Называется она WinMerge .

Эта программа автоматически находит и отображает разницу в содержимом двух текстовых файлов, что позволяет сравнивать и править открытые документы намного быстрее, нежели при обычном визуальном поиске! По своим возможностям WinMerge лишь немного уступает платным конкурентам, таким, как, например, Compare Suite:

Сравнение с платным аналогом

Кроме того обе программы поддерживают множество кодировок (в том числе и Юникод), могут быть включены практически в любые системы контроля версий и позволяют сравнивать даже заархивированные документы (для поддержки WinMerge данной функции требуется установленный архиватор 7-ZIP и специальный плагин).

Установка WinMerge

Программа имеет две версии: обычный инсталлятор и portable-версию. Для работы с портативной Вам будет достаточно ее распаковать из архива и (при желании) запустить bat-файл (Register.bat ) для интеграции пунктов приложения в контекстное меню системы (вторым «батником» (UnRegister.bat ) можно убрать данный пункт).

В случае выбора Вами стандартного инсталлятора, Вам понадобится запустить его из скачанного архива и проследовать указаниям мастера установки. Со всеми предложениями можете соглашаться, нажимая «Далее», пока не попадете на экран выбора компонентов:

Здесь внимательно проверьте язык (-и), который выбран по умолчанию: он должен быть «Russian». Также можно установить дополнительные плагины, которые добавят несколько новых предфильтров в программу.

Следующим шагом, требующим Вашего вмешательства, будет окно выбора дополнительных задач:

По умолчанию WinMerge создает только ярлык на панели быстрого запуска и интегрируется в контекстное меню. Вы же можете еще создать ярлык на Рабочем столе (что, ИМХО, удобнее:)) и добавить папку программы в системные пути для быстрого доступа.

Сравнение текстовых файлов в WinMerge

После завершения установки запустится пустое окно WinMerge. Для начала работы Вам потребуется открыть пару файлов, которые подлежат сравнению. Это можно сделать, вызвав пункт «Открыть» из меню «Файл», или же, кликнув по одноименной кнопке на панели инструментов:

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

По сути, нам достаточно будет выбрать файлы, которые отобразятся в левой и в правой панелях, и можно жать «Ok».

Окно WinMerge примет примерно такой вид:

Итак, что мы можем делать со всем этим:

  1. При помощи кнопок на панели инструментов (или же контекстного меню) Вы можете перемещаться по найденным отличиям и быстро копировать изменения из одного файла в другой.
  2. При помощи «Карты отличий» (окно «Местоположения») можно быстро оценить расположение отличий в разных документах. При этом на «карте» существует несколько цветных обозначений:
  • желтым - обозначается любое отличие в документах;
  • красным - обозначается выбранное отличие;
  • серым - обозначается отсутствующая часть кода в одном из документов.
  • При помощи окна «Отличия» Вы можете видеть часть кода, которая различается,. Править код здесь нельзя, но можно производить его копирование посредством функции в контекстном меню.
  • И, естественно, при помощи окон с открытыми документами мы можем осуществлять, как быстрое копирование фрагментов кода, так и полную его правку. По сути, перед нами обычный текстовый редактор, типа продвинутого Блокнота с подсветкой синтаксиса для множества языков программирования (причем цвета подсветки Вы можете настроить на свое усмотрение для каждого из языков в настройках)!
  • Советую также при работе с программой периодически обращать внимание на статусную строку в самом низу рабочего окна. В ней иногда можно видеть разнообразные подсказки, а также счетчик найденных отличий.

    По завершению работы с документами (или при необходимости) Вы можете сохранить, как оба редактируемых файла, так и только отдельные из них. Для этого зайдите в меню «Файл» и выберите соответственно пункт «Сохранить файл слева» или «Сохранить файл справа»:

    Настройка программы

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

    Это добавит перед панелью с кодом столбик с нумерацией строк, а сами строки теперь будут помещаться в любой размер панели за счет автоматического переноса текста (при этом структура строк полностью сохраняется)!

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

    Для некоторых языков программирования и программ в WinMerge существуют дополнения, позволяющие игнорировать те или иные параметры при сравнении файлов. Если при инсталляции программы Вы отмечали опцию установки плагинов, то найти эти возможности можно меню «Дополнения»:

    Здесь в разделе «Предсравнение» нам доступны дополнения для:

    • игнорирования комментариев;
    • игнорирования колонок (видимо для HEX);
    • игнорирования пунктуации;
    • игнорирования табуляции;
    • игнорирования номеров строк.

    Скажу честно, я этими плагинами не пользовался, поскольку мне вполне хватало стандартных способностей WinMerge, но кому-то они может и пригодятся;).

    Если Вам и этих возможностей программы мало, то Вы легко можете подстроить практически все в «Настройках»:

    «Заблудиться» в этих настройках можно в два счета, поскольку их очень много, но я обращу внимание только на те, которые нам могут пригодиться для дальнейшей работы.

    В первой группе настроек («Основные») я бы советовал активировать две опции: «Автоматически установить на первое отличие» (для большего удобства) и «Сравнения папок» в разделе «Включить окна множественного сравнения для». Последняя опция позволит открывать неограниченное количество вкладок со сравнениями при сличении папок (о котором мы поговорим чуть ниже).

    Следующие настройки, подлежащие изменению находятся в разделе «Сравнение»:

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

    Во-первых, можно отключить сравнение непечатаемых символов. Это может существенно сузить круг поисков отличий в файлах.

    Во-вторых, Вы можете активировать пропуск пустых строк и команд в разных регистрах, что тоже уменьшит количество несовпадений между файлами.

    В-третьих, здесь есть возможность фильтрации комментариев, которая аналогична таковой в меню «Дополнения». Все эти настройки необязательны, но позволяют иногда существенно уменьшить количество найденных отличий в файлах.

    Сравнение папок

    Кроме того, что в WinMerge мы можем автоматически сопоставлять файлы, мы можем еще и сравнивать папки, находя в них все измененные файлы! Однако специальной кнопки для открытия папки в программе не предусмотрено. Как же быть? Нам нужно в поле «Левый» указать любой файл из нужной нам директории, а затем убрать его имя, оставив только название папки:

    После такой манипуляции поле «Правый» автоматически переключится в режим «Выбор каталога» и нам останется только выбрать нужную папку.

    Особенностью режима сравнения папок является то, что все файлы отображаются в одном общем списке. При этом:


    Теперь, если в «Настройках» Вы активировали опцию множественных вкладок при сравнении папок, то Вы можете открывать любые подпапки и файлы - их сравнение будет открываться в новой вкладке.

    Формирование отчетов

    Если Вы работаете в команде разработчиков или Вам нужно представить результаты своей работы третьим лицам, то Вам пригодится функция создания отчетов по результатам сравнения. Найти эту функцию можно в меню «Инструменты»:

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

    1. Список с разделяющими запятыми (простой текст, например, TXT-файл).
    2. Список с разделяющими табуляторами (тоже текстовый файл).
    3. Простой HTML (формат веб-страниц (на мой взгляд, самый удобный)).
    4. Простой XML (тоже лучше открывать в браузере, поскольку этот формат позволяет сворачивать ненужные ветки сравнений).

    Выбираем любой из стилей, а затем жмем «Обзор» и указываем в какую папку и под каким именем (а также, с каким расширением имени) сохранить отчет. Нажимаем «Ok» - радуемся:).

    Здесь же (в меню «Инструменты») Вы найдете еще несколько пунктов, которые придутся по вкусу разве что серьезным разработчикам. Это функции создания патчей и фильтрации содержимого файлов и каталогов.

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

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

    Достоинства и недостатки программы

    • высокая точность распознавания различий;
    • возможность быстрой замены фрагментов текста;
    • возможность сличения папок;
    • функция создания отчетов;
    • обширные настройки.
    • нельзя сравнивать более двух документов;
    • для поддержки архивов требуется установка дополнительного ПО;
    • нет функции поиска ключевых слов.

    Выводы

    Протестировав несколько бесплатных программ для сравнения файлов, я выяснил, что WinMerge работает наиболее корректно. Процент ошибок при сопоставлении файлов был минимальным, а значит, программу вполне можно использовать в повседневной деятельности. При этом количество ложных распознаваний можно еще уменьшить, поработав с настройками.

    Если Вы работаете с текстами и Вам требуется часто сравнивать разные версии одного и того же документа, то WinMerge сможет существенно облегчить и ускорить Ваш труд. А ведь компьютер для того и создан, чтобы брать как можно больше рутины на себя, оставляя нам время для творчества;).

    P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.