Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Запрос на диалог для управления сравнением каталогов 
Author Message
Avada



PostPosted: Tue Oct 01, 2013 09:14    Post subject: Reply with quote

Поскольку предыдущий мой пост пока что никем и никак не комментировался, попробую высказать конкретные предложения.
Для начала вспомним, что сейчас может делать стандартная функция сравнения каталогом TC. Есть три команды:
cm_CompareDirs (Сравнить каталоги)
cm_CompareDirsWithSubdirs (Сравнить каталоги с учётом подкаталогов)
cm_DirMatch (Сравнить каталоги, скрыв одинаковые файлы)
По первой команде на каждой стороне выделяются:
• файлы, имён которых нет на другой панели (уникальные)
• при наличии одноимённого файла с двух сторон — более новые
Вторая команде делает то же самое, но дополнительно на каждой стороне выделяются каталоги, имён которых нет на другой панели.
Третья команда делает то же, что первая, но дополнительно скрывает все одинаковые (по используемому критерию) файлы с обеих сторон.
Вот, собственно, и всё. Никаких настроек этого поведения нет. Для более гибкого сравнения предлагается отправляться в окно синхронизации.

Переходим к предложениям. Прежде всего о том, чего в этой функции может и не быть. Это учёт содержимого имеющихся с двух сторон подкаталогов и — особенно — сравнение файлов по содержимому. Обе возможности реализованы в функции синхронизации, а при сравнении только текущих каталогов они более или менее существенно замедлят ход операции. (Хотя, конечно, возможность выделить с обеих сторон одноимённые подкаталоги с разным содержимым без открытия их структуры интересна, и её опциональное применение совсем исключать нельзя.)

Теперь о том, что быть должно.
Нынешняя функция сравнения позволяет одновременно выделить и уникальные файлы, и различающиеся по времени. Хорошо бы это разделить. По умолчанию — то и другое (как при синхронизации), но с возможностью показывать также только уникальные или только различающиеся.
Кроме того, может потребоваться выделение в имеющихся парах одноимённых файлов не самого нового, а наоборот, самого старого.
Нужна также возможность вообще не выделять файлы по дате/времени, используя другие критерии. В первую очередь — выделять одноимённые, но разноразмерные файлы, которую сейчас приходится реализовывать обходными путями.

Если по команде cm_CompareDirs появится некий промежуточный диалог, в нём хорошо бы предусмотреть возможность сразу реализовать функциональность двух остальных команд без их специального вызова. Пара дополнительных опций: "Только выделенные файлы" для автоматической фильтрации после сравнения и "С учётом подкаталогов" для выделения на каждой стороне уникальных каталогов. В идеале можно сделать отдельную группу опций "С учётом подкаталогов", где будут варианты "Только уникальные" или "C учётом содержимого".

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

В альтернативных ФМ есть ещё всякие опции. Можно, например:
• сравнивать одноимённые файлы с разными атрибутами
• исключать при сравнении по маске определённые файлы/каталоги
• выделять не различные, а как раз одинаковые файлы
• учитывать не время модификации, а время создания или доступа
Но это уже пожелания на будущее, если по базовому функционалу будут подвижки.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group