Страница 1 из 25

[WCX] CopyTree - копирование с сохранением структуры

Добавлено: Сб июл 21, 2012 14:23
MVV
CopyTree - ещё один архиваторный модуль для копирования файлов с сохранением структуры.

Информация о последней версии

Версия: 1.3 32/64
URL: CopyTree на wincmd.ru / CopyTree на totalcmd.net

Требования: Windows 2000 и выше, Total Commander :)

Особенности:

+ копирование/перемещение файлов из плоского режима (branch view) и результатов поиска
+ диалог выбора числа дублируемых уровней каталогов с отображением относительного пути для каждого варианта
+ возможность задать набор масок файлов для включения/исключения
+ возможность показа диалога однократно, при зажатой клавише Win или каждый раз
+ поддержка многопоточности (фоновые операции в ТК 7.55 и более поздних)
+ возможность копирования временных меток каталогов
+ сообщает, если не все файлы были обработаны
+ полная поддержка Юникода


Общая информация:

Модуль позволяет копировать или перемещать файлы из вида с подкаталогами (по умолчанию Ctrl+[Shift+]B; в официальной русской локализации команда "Показать все файлы без подкаталогов") и панели результатов поиска (в официальной русской локализации кнопка "Файлы на панель" в диалоге результатов поиска), когда при обычном копировании ТК сваливает все файлы в одну кучу, не сохраняя оригинальную иерархию каталогов.

Для копирования файлов с сохранением исходной иерархии каталогов нужно выделить эти файлы, открыть диалог упаковки файлов (по умолчанию Alt+F5), в списке доступных модулей выбрать CopyTree (если модуль устанавливался вручную, расширение может быть другим) и нажать ОК. При необходимости будет показан диалог выбора глубины. Кнопка Настройка открывает диалог настройки, позволяющий изменить параметры отображения диалога выбора и т.п.

При нажатии кнопки Отмена в окне прогресса операции ТК не позволяет отменить прерывание. Данная возможность реализована в CT, при этом в силу особенностей ТК второй раз прервать операцию нажатием той же кнопки Отмена нельзя, для повторного отображения диалога прерывания операции необходимо нажать клавишу Esc.

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

Добавлено: Сб июл 21, 2012 17:06
Rodny
С явным списком глубины хорошая идея, в TreeCopyPlus пока каталоги посчитаешь...
Изменяемые/запоминаемые размеры диалога настроек хочется.

Добавлено: Сб июл 21, 2012 17:10
Leopoldus
Очень полезная штука, спасибо!

Но для ясности неплохо было бы в описании указать на основные отличия от похожих плагинов, в частности, от CopyTree Plus.

И ещё, можно ли сделать, чтобы при копировании воспроизводилось время модификации директориев, если соответствующая опция включена в настройках TC (Copy/Delete -> Copy date/time of directories).

Спасибо!

Добавлено: Сб июл 21, 2012 17:24
MVV
Rodny писал(а):С явным списком глубины хорошая идея, в TreeCopyPlus пока каталоги посчитаешь...
Собственно, это основная причина появления плагина. :) Ну ещё то, что этот диалог не должен быть одним и тем же с диалогом настроек и уметь показываться автоматом. А, и возможность задавать маски.
Rodny писал(а):Изменяемые/запоминаемые размеры диалога настроек хочется.
Наверное, не настроек, а параметров копирования? Я посчитал, что это не необходимо, т.к. все имена, которые не умещаются в списке, представлены в нём в предыдущих строчках.
Leopoldus писал(а):Но для ясности неплохо было бы в описании указать на основные отличия от похожих плагинов, в частности, от CopyTree Plus.
А есть ли смысл? Все основные функции и так перечислены, дальше можно сравнить самому.
Leopoldus писал(а):И ещё, можно ли сделать, чтобы при копировании воспроизводилось время модификации директориев, если соответствующая опция включена в настройках TC (Copy/Delete -> Copy date/time of directories).
Ожидал этого вопроса. :D
Какой вообще смысл в копировании дат модификации? На NTFS дата модификации каталога - крайне нестабильная штука. Малейшее изменение в папке - и дата утрачена.

Добавлено: Сб июл 21, 2012 17:37
Rodny
MVV писал(а):Наверное, не настроек, а параметров копирования?
Точно, его.
Обрезка по ширине не принципиальна, а вот ~6,5 строчек высоты при большой вложенности явно не хватает.

Добавлено: Сб июл 21, 2012 19:42
MVV
А, высота. Что ж, посмотрю, что можно сделать. Возможно, заодно и длину сделаю изменяемой.

Добавлено спустя 1 час 14 минут:

Или просто увеличить число строк? Что именно неудобно в текущем диалоге? В какую сторону приходится прокручивать?

Добавлено: Сб июл 21, 2012 20:58
Rodny
Неудобно хотя бы то, что при прокрутке к нижней строке исчезают верхние, в которых видно имя.
У меня при виде не влезающих списков рука сама тянется границу подвинуть. Но это пускай психологи объясняют ;)

А зачем вообще фиксированная высота? Скажем, я часто копирую что-то из дистрибутивов, вложенность 10-12 - обычное дело. Меня устроит 15 строк при текущем размере шрифта и экрана. А кто-нибудь на нетбуке будет плеваться на пустой диалог во весь экран.

Добавлено: Сб июл 21, 2012 21:24
Mellomann
Полезная вещица, НО:

1. Размер диалога лучше бы изменяемый, без возможности растянуть окно вправо и вниз иногда плохо.
2. Хранить конфигу плагина в ЕГО же папке, а не создавать pkplugin.ini возле Тотала.

А так, уже успел оценить всю полезность плагина.

Добавлено: Сб июл 21, 2012 21:37
Rodny
А у меня CopyTree.ini сразу в папке плагина создался, я после прочтения ридми полез создавать, а он уже есть...
Хотя pkplugin.ini тоже в наличии, рядом с wincmd.ini в папке самого TC.
Возможно, связано с местом установки, типа в/не в Program Files.

Добавлено: Сб июл 21, 2012 21:52
Mellomann
Rodny
у меня ТК лежит в програм-файлах, плагин "ставил" руками, прописывая строку в конфиге и копируя файлы (не доверяю я автомату, он относительные пути не умеет делать).

Добавлено: Сб июл 21, 2012 22:03
Rodny
Mellomann писал(а):у меня ТК лежит в програм-файлах
Ну, правильно. На запись туда у пользователя-то прав нет по умолчанию.
Придёт MVV, ответит точно.

И да, п.1 ридми читал? Возможность же есть.

Добавлено: Сб июл 21, 2012 22:35
Mellomann
Rodny
Я админом сижу, у меня есть права на всё. А у пользователя (на вынь-7), если на то пошло, вообще нет доступа записи ни к самой папке прог-файлов, ни к подпапкам. От имени юзверя если запускать, конфига вообще НИГДЕ не сможет быть сохранена за неимением прав.
По крайней мере, у меня - так...

Добавлено спустя 4 минуты:
Rodny писал(а):И да, п.1 ридми читал? Возможность же есть.
Точно, есть. Как-то отвык-разленился я уже по ридмям лазить, ибо в них редко что-то полезное попадается.

Добавлено: Сб июл 21, 2012 23:14
MVV
Rodny писал(а):Неудобно хотя бы то, что при прокрутке к нижней строке исчезают верхние, в которых видно имя.
Возможно. Хотя, если подумать, нужно ли имя? Это лишь пример файла, список служит лишь для наглядности выбора уровня каталогов (для этого вполне достаточно видеть первые имена), имя файла там не имеет значения.
Rodny писал(а):А зачем вообще фиксированная высота? Скажем, я часто копирую что-то из дистрибутивов, вложенность 10-12 - обычное дело. Меня устроит 15 строк при текущем размере шрифта и экрана. А кто-нибудь на нетбуке будет плеваться на пустой диалог во весь экран.
Зачем - это не тот вопрос, который в данной ситуации стоит задавать. Фиксированная высота - это то, что есть изначально, чтобы сделать высоту изменяемой, нужно приложить усилия и написать дополнительный код, который будет перемещать/ресайзить дочерние окна диалога.
Rodny писал(а):А у меня CopyTree.ini сразу в папке плагина создался, я после прочтения ридми полез создавать, а он уже есть...
Хотя pkplugin.ini тоже в наличии, рядом с wincmd.ini в папке самого TC.
Возможно, связано с местом установки, типа в/не в Program Files.
Это уже забавно. Вообще, такое могло быть только если тотал не вызвал функцию PackSetDefaultParams до вызова PackFiles или ConfigurePacker - в этих функциях я вызываю её явно без параметров, поэтому путь получается стандартный.
Mellomann писал(а):Я админом сижу, у меня есть права на всё. А у пользователя (на вынь-7), если на то пошло, вообще нет доступа записи ни к самой папке прог-файлов, ни к подпапкам. От имени юзверя если запускать, конфига вообще НИГДЕ не сможет быть сохранена за неимением прав.
По крайней мере, у меня - так...
Вообще, у пользователя нигде прав нет. А у админа - и в Win7, если включен UAC. Но права для определенных файлов можно включить. У меня папка тотала не на системном диске, но в целях безопасности писать в неё могут только админы, а файлам конфигурации я прописал нужные разрешения для пользователей.
Mellomann писал(а):Точно, есть. Как-то отвык-разленился я уже по ридмям лазить, ибо в них редко что-то полезное попадается.
Эх...

Добавлено: Сб июл 21, 2012 23:40
Mellomann
MVV писал(а):чтобы сделать высоту изменяемой, нужно приложить усилия и написать дополнительный код, который будет перемещать/ресайзить дочерние окна диалога
Тогда крайне желательно эти усилия приложить... Я бы приложил, если б мог. :wink:
MVV писал(а):Вообще, у пользователя нигде прав нет.
И это не может не радовать!
Никто шаловливыми ручёнками просто так ничего не сломает! :P

Добавлено: Вс июл 22, 2012 00:32
LonerD
Надо бы добавить возможность опционально задавать дефолтную глубину каталогов, как в TreeCopy.
Пример. Мне обычно надо копировать структуру каталогов относительно корня диска, и гораздо реже - другую структуру. В TreeCopy в настройках стоит единица - и по умолчанию сохраняются все каталоги относительно корня.
В CopyTree, я так понимаю, сейчас это сделать невозможно - нужно обязательно при каждом копировании вручную выбирать глубину.

Насчёт сохранения дат каталогов - поддерживаю предложение.

Ещё стоит добавить возможность перемещения (галочка Move to Archive в настройках архивирования).

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

Posted after 13 minutes:

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

Код: Выделить всё

System32
Windows\System32
C\Windows\System32
отображать:

Код: Выделить всё

System32
Windows
C
или лучше так:

Код: Выделить всё

C
Windows
System32