[WCX] CopyTree - копирование с сохранением структуры
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Плагины Total Commander

#1: [WCX] CopyTree - копирование с сохранением структуры Author: MVVLocation: Ростов-Дон PostPosted: Sat Jul 21, 2012 14:23
    —
CopyTree - ещё один архиваторный модуль для копирования файлов с сохранением структуры.

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

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

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

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

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


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

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

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

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

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


Last edited by MVV on Sun Sep 27, 2015 14:11; edited 3 times in total

#2:  Author: RodnyLocation: Могилёв, Беларусь PostPosted: Sat Jul 21, 2012 17:06
    —
С явным списком глубины хорошая идея, в TreeCopyPlus пока каталоги посчитаешь...
Изменяемые/запоминаемые размеры диалога настроек хочется.

#3:  Author: Leopoldus PostPosted: Sat Jul 21, 2012 17:10
    —
Очень полезная штука, спасибо!

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

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

Спасибо!

#4:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Jul 21, 2012 17:24
    —
Rodny wrote:
С явным списком глубины хорошая идея, в TreeCopyPlus пока каталоги посчитаешь...

Собственно, это основная причина появления плагина. Smile Ну ещё то, что этот диалог не должен быть одним и тем же с диалогом настроек и уметь показываться автоматом. А, и возможность задавать маски.
Rodny wrote:
Изменяемые/запоминаемые размеры диалога настроек хочется.

Наверное, не настроек, а параметров копирования? Я посчитал, что это не необходимо, т.к. все имена, которые не умещаются в списке, представлены в нём в предыдущих строчках.

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

А есть ли смысл? Все основные функции и так перечислены, дальше можно сравнить самому.

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

Ожидал этого вопроса. Very Happy
Какой вообще смысл в копировании дат модификации? На NTFS дата модификации каталога - крайне нестабильная штука. Малейшее изменение в папке - и дата утрачена.

#5:  Author: RodnyLocation: Могилёв, Беларусь PostPosted: Sat Jul 21, 2012 17:37
    —
MVV wrote:
Наверное, не настроек, а параметров копирования?

Точно, его.
Обрезка по ширине не принципиальна, а вот ~6,5 строчек высоты при большой вложенности явно не хватает.

#6:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Jul 21, 2012 18:28
    —
А, высота. Что ж, посмотрю, что можно сделать. Возможно, заодно и длину сделаю изменяемой.

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

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

#7:  Author: RodnyLocation: Могилёв, Беларусь PostPosted: Sat Jul 21, 2012 20:58
    —
Неудобно хотя бы то, что при прокрутке к нижней строке исчезают верхние, в которых видно имя.
У меня при виде не влезающих списков рука сама тянется границу подвинуть. Но это пускай психологи объясняют Wink

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

#8:  Author: Mellomann PostPosted: Sat Jul 21, 2012 21:24
    —
Полезная вещица, НО:

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

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

#9:  Author: RodnyLocation: Могилёв, Беларусь PostPosted: Sat Jul 21, 2012 21:37
    —
А у меня CopyTree.ini сразу в папке плагина создался, я после прочтения ридми полез создавать, а он уже есть...
Хотя pkplugin.ini тоже в наличии, рядом с wincmd.ini в папке самого TC.
Возможно, связано с местом установки, типа в/не в Program Files.

#10:  Author: Mellomann PostPosted: Sat Jul 21, 2012 21:52
    —
Rodny
у меня ТК лежит в програм-файлах, плагин "ставил" руками, прописывая строку в конфиге и копируя файлы (не доверяю я автомату, он относительные пути не умеет делать).

#11:  Author: RodnyLocation: Могилёв, Беларусь PostPosted: Sat Jul 21, 2012 22:03
    —
Mellomann wrote:
у меня ТК лежит в програм-файлах

Ну, правильно. На запись туда у пользователя-то прав нет по умолчанию.
Придёт MVV, ответит точно.

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

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

Добавлено спустя 4 минуты:

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

Точно, есть. Как-то отвык-разленился я уже по ридмям лазить, ибо в них редко что-то полезное попадается.

#13:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Jul 21, 2012 23:14
    —
Rodny wrote:
Неудобно хотя бы то, что при прокрутке к нижней строке исчезают верхние, в которых видно имя.

Возможно. Хотя, если подумать, нужно ли имя? Это лишь пример файла, список служит лишь для наглядности выбора уровня каталогов (для этого вполне достаточно видеть первые имена), имя файла там не имеет значения.

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

Зачем - это не тот вопрос, который в данной ситуации стоит задавать. Фиксированная высота - это то, что есть изначально, чтобы сделать высоту изменяемой, нужно приложить усилия и написать дополнительный код, который будет перемещать/ресайзить дочерние окна диалога.

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

Это уже забавно. Вообще, такое могло быть только если тотал не вызвал функцию PackSetDefaultParams до вызова PackFiles или ConfigurePacker - в этих функциях я вызываю её явно без параметров, поэтому путь получается стандартный.

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

Вообще, у пользователя нигде прав нет. А у админа - и в Win7, если включен UAC. Но права для определенных файлов можно включить. У меня папка тотала не на системном диске, но в целях безопасности писать в неё могут только админы, а файлам конфигурации я прописал нужные разрешения для пользователей.

Mellomann wrote:
Точно, есть. Как-то отвык-разленился я уже по ридмям лазить, ибо в них редко что-то полезное попадается.

Эх...

#14:  Author: Mellomann PostPosted: Sat Jul 21, 2012 23:40
    —
MVV wrote:
чтобы сделать высоту изменяемой, нужно приложить усилия и написать дополнительный код, который будет перемещать/ресайзить дочерние окна диалога
Тогда крайне желательно эти усилия приложить... Я бы приложил, если б мог. Wink

MVV wrote:
Вообще, у пользователя нигде прав нет.
И это не может не радовать!
Никто шаловливыми ручёнками просто так ничего не сломает! Razz

#15:  Author: LonerDLocation: Донецк PostPosted: Sun Jul 22, 2012 00:20
    —
Надо бы добавить возможность опционально задавать дефолтную глубину каталогов, как в TreeCopy.
Пример. Мне обычно надо копировать структуру каталогов относительно корня диска, и гораздо реже - другую структуру. В TreeCopy в настройках стоит единица - и по умолчанию сохраняются все каталоги относительно корня.
В CopyTree, я так понимаю, сейчас это сделать невозможно - нужно обязательно при каждом копировании вручную выбирать глубину.

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

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

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

Posted after 13 minutes:

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

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

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

#16:  Author: MVVLocation: Ростов-Дон PostPosted: Sun Jul 22, 2012 01:04
    —
LonerD wrote:
Надо бы добавить возможность опционально задавать дефолтную глубину каталогов, как в TreeCopy.
Пример. Мне обычно надо копировать структуру каталогов относительно корня диска, и гораздо реже - другую структуру. В TreeCopy в настройках стоит единица - и по умолчанию сохраняются все каталоги относительно корня.
В CopyTree, я так понимаю, сейчас это сделать невозможно - нужно обязательно при каждом копировании вручную выбирать глубину.

Добавлю параметр, переопределяющий выбор дефолтного варианта (если задан, в списке всегда будет выделена строка с этим номером, отрицательный - с конца).

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

Короче, смотрю, Readme или первый пост темы, не говоря уже об описании плагина на wincmd.ru читать нынче вообще не модно. Фича поддерживается. Пустые каталоги не удаляются (может, исправлю потом), но файлы прекрасно переносятся.

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

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

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

Это будет сбивать с толку. В текущей реализации сразу видно, какой набор уровней будет воссоздан.


Обновил плагин, добавил параметр DefaultChoiceIndex.

#17:  Author: LonerDLocation: Донецк PostPosted: Sun Jul 22, 2012 01:25
    —
Quote:
Пустые каталоги не удаляются (может, исправлю потом), но файлы прекрасно переносятся.

Точно, я как-раз и пытался переместить каталог. Смотрю - он остался на месте. А что он пустой уже - не заметил. Smile

#18:  Author: sa PostPosted: Sun Jul 22, 2012 01:31
    —
MVV
После поиска всех файлов в папке с подкаталогами и вызова результатов поиска на панель, запускаю копирование плагином и получаю сообщения о замене файлов в подкаталогах. Так и должно быть?

#19:  Author: LonerDLocation: Донецк PostPosted: Sun Jul 22, 2012 01:36
    —
Quote:
Обновил плагин, добавил параметр DefaultChoiceIndex.

Без перезагрузки Тотала плагин не реагирует на изменение параметра Sad
Если все галочки в настройках сняты - параметр вообще игнорируется. Sad Активируется только если отображается диалог выбора уровня.

Окошко про "User Abort!" имхо излишнее (хотя оно и давится через SM2BT).

#20:  Author: MVVLocation: Ростов-Дон PostPosted: Sun Jul 22, 2012 08:05
    —
sa wrote:
После поиска всех файлов в папке с подкаталогами и вызова результатов поиска на панель, запускаю копирование плагином и получаю сообщения о замене файлов в подкаталогах. Так и должно быть?

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

LonerD wrote:
Без перезагрузки Тотала плагин не реагирует на изменение параметра Sad

Ну настройки читаются только при загрузке. Можешь пока использовать команду cm_UnloadPlugins. Потом сделаю кнопку загрузки настроек.
LonerD wrote:
Если все галочки в настройках сняты - параметр вообще игнорируется. Sad Активируется только если отображается диалог выбора уровня.

Да, пока так. Потом доделаю.

LonerD wrote:
Окошко про "User Abort!" имхо излишнее (хотя оно и давится через SM2BT).

Окошко показывает тотал, т.к. я ему говорю, что юзер прервал операцию. А тотал у нас любитель сообщений. Very Happy

#21:  Author: sa PostPosted: Sun Jul 22, 2012 09:33
    —
MVV wrote:
получилось воспроизвести

Если при этом в качестве маски указать * \, то до сообщений о замене файлов дело не доходит, а ТК у меня как бы подвисает на диалоге прогресса копирования.

#22:  Author: MVVLocation: Ростов-Дон PostPosted: Sun Jul 22, 2012 11:31
    —
sa wrote:
Если при этом в качестве маски указать * \, то до сообщений о замене файлов дело не доходит, а ТК у меня как бы подвисает на диалоге прогресса копирования.

Спасибо, как раз вовремя. Да, это был цикл создания структуры каталогов, я менял там код недавно, а одну штуку не поправил.

Добавлено спустя 32 минуты:

Обновил дистрибутив.


CopyTree 1.1.1.120:
+ добавлен параметр DefaultChoiceIndex для переопределения индекса элемента списка по умолчанию
+ параметр DefaultChoiceIndex заменён параметром DefaultCopyLevel, работающим и без диалога
+ кнопка загрузки настроек из INI-файла в диалоге настроек
+ изменяемый размер диалога выбора глубины
+ диалог выбора глубины запоминает размер
* удалён нежелательный импорт из MVCR100.DLL в 64-битной версии
* зависание при копировании пустых папок
* перезапись файлов только для чтения

#23:  Author: sa PostPosted: Sun Jul 22, 2012 15:39
    —
MVV wrote:
* зависание при копировании
Теперь не зависает.
MVV wrote:
такая проблема существует для любого архиваторного плагина.
Плагин 7Zip, например, не выводит диалога перезаписи файлов при упаковке той же панели с результатами поиска.

#24:  Author: MVVLocation: Ростов-Дон PostPosted: Sun Jul 22, 2012 16:19
    —
sa wrote:
Плагин 7Zip, например, не выводит диалога перезаписи файлов при упаковке той же панели с результатами поиска.

Ага, попробовал сейчас:

zip, tar
Тотал спрашивает о перезаписи.

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

7Zip
Получил в архиве по несколько копий этих файлов в одной и той же папке, потому и без подтверждений (подтверждения будут при извлечении). Very Happy А у меня файловая система не позволяет держать файлы с одинаковыми именами в одной папке. Rolling Eyes


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


Last edited by MVV on Sun Jul 22, 2012 16:31; edited 1 time in total

#25:  Author: sa PostPosted: Sun Jul 22, 2012 16:27
    —
MVV wrote:
Получил в архиве по несколько копий этих файлов в одной и той же папке

И, правда! Smile

#26:  Author: Mellomann PostPosted: Sun Jul 22, 2012 17:03
    —
Абслютно верно, 7zip пакует все дубли, спрашивая при распаковке, а остальные либо крошатся, либо переспрашивают...

Назрел у меня капитальный вопрос тогда:
КАК 7z заставить в нормальных условиях упаковать более одного файла с идентичным путём так, чтобы при распаковке так же заранее можно было выбрать нужный из них? Он же (7z) как-то отличает где какой из дублей...

Добавлено спустя 3 минуты:

Хотя ладно, упаковать - особо не вопрос. А, вот, КАК распаковать нужный из них? (при условии, что содержимое будет разным)

#27:  Author: MVVLocation: Ростов-Дон PostPosted: Sun Jul 22, 2012 17:19
    —
При распаковке заменять уже распакованные, пока не извлечешь нужный. Very Happy А вообще, это уже зависит от распаковщика. При внутреннем распаковщике можно по каким-нибудь индексам файлы различать. Концепция WCX API тотала такого не позволяет.

#28:  Author: sa PostPosted: Mon Jul 23, 2012 11:51
    —
Leopoldus wrote:
чтобы при копировании воспроизводилось время модификации директориев

Поддерживаю предложение. В Zip и 7zip это есть.

#29:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Jul 23, 2012 12:37
    —
Мне так никто и не объяснил,
MVV wrote:
Какой вообще смысл в копировании дат модификации? На NTFS дата модификации каталога - крайне нестабильная штука. Малейшее изменение в папке - и дата утрачена.

В архиве - другое дело, там с ней ничего не случится. А на диске...

#30:  Author: sa PostPosted: Mon Jul 23, 2012 13:00
    —
MVV wrote:
Какой вообще смысл в копировании дат модификации?

У меня, например, сортировка в панели (подробный режим) обычно по времени. Все “свежие” файлы и каталоги всегда сверху, под рукой.

#31:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Jul 23, 2012 21:29
    —
Всё равно абсурдно понятие "свежести" папки только по дате последнего добавления/удаления в ней файлов. Если я добавляю в папку файл, которому 10 лет, папка сразу становится "свежей"... Или если удаляю из папки файл, она сразу становится "свежей"... При этом папка более верхнего уровня от этого свежее не становится. Бред.

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

#32:  Author: sa PostPosted: Mon Jul 23, 2012 22:06
    —
MVV wrote:
становится "свежей"
Для папки можно придумать какое-нибудь более удобоваримое название: последняя изменённая, модифицированная, скорректированная и т.п.
MVV wrote:
усложнять ли модуль такой функцией
Не стоит, коль это не совсем просто. Для тех, кому это всё же потребуется, есть в дополнение NSCopy 2.3 beta, например или вариант с упаковкой в Zip и последующей распаковкой.
MVV wrote:
Если я добавляю в папку файл, которому 10 лет, папка сразу становится "свежей"... Или если удаляю из папки файл, она сразу становится "свежей"...
Если я добавляю в файл строчки из Шекспира, файл сразу становится “свежей”... Или если удаляю из файла строчку, он сразу становится “свежей”…

#33:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Jul 24, 2012 10:14
    —
Если изменяешь файл, тут без вопросов он становится "свежим". А папка... Если в папке 10 файлов 10-летней давности, как-то не совсем логично, что у неё сегодняшняя дата модификации... Непонятно, о чём это говорит.

#34:  Author: sa PostPosted: Tue Jul 24, 2012 10:21
    —
MVV wrote:
Если в папке 10 файлов 10-летней давности, как-то не совсем логично, что у неё сегодняшняя дата модификации

Если десятый файл появился в ней (то есть изменил её содержимое) именно сегодня, то достаточно логично.

#35:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Jul 24, 2012 22:51
    —
Небольшое обновление. Smile

CopyTree 1.1.2.130:
+ последние 20 масок запоминаются
* удалена иконка диалога выбора глубины

#36:  Author: sa PostPosted: Wed Jul 25, 2012 09:16
    —
MVV wrote:
Небольшое обновление
Спасибо за историю для масок!
Одиночная маска \ удобна для создания “пустых” структур каталогов.

#37:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Jul 25, 2012 10:13
    —
Вообще, она планировалась изначально - комбобокс я там разместил сразу. Просто не было времени допилить, остальное было важнее для выпуска в свет. Smile

#38:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Jul 27, 2012 19:32
    —
MVV wrote:
Можно, конечно, не копировать файлы второй раз, но придётся каждый обработанный файл добавлять в массив, и каждый очередной проверять на отсутствие в этом массиве. Для большого числа файлов операция не из весёлых. Думаю, правильнее будет исправлять такую проблему на стороне тотала.

А ведь Гислер-таки решил проблему. Very Happy
Теперь тотал (начиная с 8.01 RC5) не спрашивает о перезаписи файлов самими собой при копировании из результатов поиска.

#39:  Author: sa PostPosted: Mon Jul 30, 2012 11:06
    —
MVV wrote:
А ведь Гислер-таки решил проблему.

Только вот список (с проверкой на дубли) он передаёт теперь на порядок дольше, чем раньше…

#40:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Jul 30, 2012 11:30
    —
Надо отписать на оффорум. Если Гислер не использовал бинарный поиск, то это вполне закономерно. Впрочем, если папка выделена лишь одна, а остальное - несколько тысяч файлов, то независимо от типа поиска должно работать с одинаковой скоростью - проверить каждый файл на соответствие единственной папке.

Добавлено в 23:04:

Вроде не так и долго, 5 секунд (вместо 1-2) на 6 тыщ файлов...

#41:  Author: MVVLocation: Ростов-Дон PostPosted: Sun Sep 16, 2012 12:57
    —
Небольшое обновление. Эм, прокрутил страницу - начинаю повторяться... Smile

CopyTree 1.1.2.134:
* убрана тестовая строка L"Bla-bla-bla-bla-bla" из кода Smile
* подправлена процентная шкала для пропускаемых файлов (она должна расти в любом случае)

#42:  Author: DrakonHaSh PostPosted: Wed Nov 21, 2012 20:02
    —
MVV wrote:
Leopoldus wrote:
И ещё, можно ли сделать, чтобы при копировании воспроизводилось время модификации директориев, если соответствующая опция включена в настройках TC (Copy/Delete -> Copy date/time of directories).

Ожидал этого вопроса. Very Happy
Какой вообще смысл в копировании дат модификации? На NTFS дата модификации каталога - крайне нестабильная штука. Малейшее изменение в папке - и дата утрачена.

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

============================================
еще очень огорчило что нельзя создавать "архив" на Вашу \Virtual Panel

#43:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Nov 21, 2012 20:13
    —
DrakonHaSh
Всего один из примеров "cтабильности и прогнозируемости"...

#44:  Author: DrakonHaSh PostPosted: Wed Nov 21, 2012 21:00
    —
Avada wrote:
DrakonHaSh
Всего один из примеров "cтабильности и прогнозируемости"...

ну если Вы не знаете что софт, которым Вы пользуетесь, создает временные файлы в директории с файлом, с которым работает Ваш софт, то Вы - юзер, который сидит перед "магической машиной - черным ящиком с не прогнозируемым поведением" Smile
я не такой. мой комп - мой послушный раб. не надо проецировать проблемы юзеров от незнания или недопонимания механизмом работы компа и оси на остальных. задайте себе лучше вопрос - а зачем это автор ТС решил создать фичу [TC (Copy/Delete -> Copy date/time of directories)] и даже выделил ей место в гуи.

#45:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Nov 21, 2012 22:07
    —
DrakonHaSh wrote:
ну если Вы не знаете что софт, которым Вы пользуетесь, создает временные файлы в директории с файлом, с которым работает Ваш софт

Лично я — знаю. Very Happy И лично я ни против фичи TC, ни против учёта её в плагине ничего особо не имею. Автору доказывайте.

#46:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Nov 23, 2012 11:41
    —
DrakonHaSh wrote:
присоединяюсь к просьбе. у меня дата каталога имеет весомое значение.

Опять скажу, что подумаю, что можно сделать (сильно ли придётся усложнить всё ради добавления одной этой функции).

DrakonHaSh wrote:
еще очень огорчило что нельзя создавать "архив" на Вашу \Virtual Panel

Ну, это не ко мне, к сожалению, тотал не поддерживает упаковку напрямую в модули файловых систем.

#47:  Author: DrakonHaSh PostPosted: Fri Nov 23, 2012 15:40
    —
MVV wrote:
DrakonHaSh wrote:
присоединяюсь к просьбе. у меня дата каталога имеет весомое значение.

Опять скажу, что подумаю, что можно сделать (сильно ли придётся усложнить всё ради добавления одной этой функции).

Спасибо. Буду надеяться на положительное решение.
в ТС, кста, это фича реализована так: сначала полностью копируются все файлы/каталоги, а затем, 2-м проходом, устанавливается время для каталогов.

MVV wrote:
DrakonHaSh wrote:
еще очень огорчило что нельзя создавать "архив" на Вашу \Virtual Panel

Ну, это не ко мне, к сожалению, тотал не поддерживает упаковку напрямую в модули файловых систем.

пичалька Sad
а нельзя ли сделать проверку в CopyTree - не является ли приемником \Virtual Panel и учитывая, что обе проги Ваши, закидывать "архив" напрямую в текущую папку \Virtual Panel минуя внутренние механизмы тотала.

задача, что я хочу решить: закидывать в \Virtual Panel результаты поиска и иногда результаты ctrl-b с сохранением структуры каталогов.

#48:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Nov 23, 2012 19:18
    —
DrakonHaSh wrote:
в ТС, кста, это фича реализована так: сначала полностью копируются все файлы/каталоги, а затем, 2-м проходом, устанавливается время для каталогов.

Да то козе понятно. Иначе никак. Smile

DrakonHaSh wrote:
задача, что я хочу решить: закидывать в \Virtual Panel результаты поиска и иногда результаты ctrl-b с сохранением структуры каталогов.

И то понятно. Very Happy

DrakonHaSh wrote:
MVV wrote:
Ну, это не ко мне, к сожалению, тотал не поддерживает упаковку напрямую в модули файловых систем.
пичалька Sad
а нельзя ли сделать проверку в CopyTree - не является ли приемником \Virtual Panel и учитывая, что обе проги Ваши, закидывать "архив" напрямую в текущую папку \Virtual Panel минуя внутренние механизмы тотала.

До этого просто не доходит, тотал не обращается ни к одному из моих плагинов, когда обнаруживает сий вопиющий факт. Да и неправильно это - вставлять подобные костыли. Можно написать скрипт, который будет добавлять файлы/папки через VPBatch с сохранением структуры, хотя, конечно, нагородить придётся порядочно.


На этой бете можно пощупать, как работает новая опция.

#49:  Author: sa PostPosted: Fri Nov 23, 2012 21:38
    —
Пощупал. Дата и время каталогов (явно выделенных в панели и вложенных в них) копируется как будто нормально. Спасибо! Мы ж теперь захотим и для остальных каталогов…Smile

#50:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Nov 23, 2012 22:24
    —
У остальных и пары-то может не быть, раз тотал не передал путь к папке. Или быть несколько пар... Вряд ли я стану городить огород для проверки и поиска всех возможных вариантов.

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

#51:  Author: sa PostPosted: Fri Nov 23, 2012 23:56
    —
Но ведь уже не возникает вопроса, зачем сохранять дату модификации явно выделенных в панели папок, если копируются только файлы определённого типа, которые, может, и на десятую часть от веса папки не потянут? Да и тотал даёт похожую возможность и zip.

#52:  Author: DrakonHaSh PostPosted: Sat Nov 24, 2012 18:53
    —
MVV wrote:
DrakonHaSh wrote:
а нельзя ли сделать проверку в CopyTree - не является ли приемником \Virtual Panel и учитывая, что обе проги Ваши, закидывать "архив" напрямую в текущую папку \Virtual Panel минуя внутренние механизмы тотала.

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

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

MVV wrote:
На этой бете можно пощупать, как работает новая опция.

что-то у меня она, похоже, "никак" не работает:
[Copy Tree]
AskOptionsOnWin=1
AskOptionsAlways=0
CopyDirTimeStamp=1
захожу в каталог в котором еще пара уровней подкаталогов,
нажимаю ctrl-b, *, alt-f5 [Copy-Tree]
и никакого сохранения даты Sad
какой вообще смысл тогда ?
ps c результатами поиска тоже самое Sad


Last edited by DrakonHaSh on Sat Nov 24, 2012 19:42; edited 1 time in total

#53:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Nov 24, 2012 19:42
    —
В данном случае-таки это был бы костыль, позволяющий тоталу-таки скопировать файлы во временную панель.

Да, с Ctrl+B это не заработает... Тотал папок не передаёт в таком режиме, одна надежда на промежуточные. Что ж, на то она и бета.

Кстати, инишник править вручную необязательно, в диалоге настроек опция тоже есть.

#54:  Author: DrakonHaSh PostPosted: Sat Nov 24, 2012 19:46
    —
MVV wrote:
В данном случае-таки это был бы костыль, позволяющий тоталу-таки скопировать файлы во временную панель.

для тотала, полностью согласен, - костыль
а вот для плагина, который на шесте перепрыгивает через ограничения тотала ... Wink

MVV wrote:
Да, с Ctrl+B это не заработает... Тотал папок не передаёт в таком режиме, одна надежда на промежуточные. Что ж, на то она и бета.

с результатами поиска тоже новая фича в бете не работает.

#55:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Nov 24, 2012 20:12
    —
DrakonHaSh wrote:
для тотала, полностью согласен, - костыль
а вот для плагина, который на шесте перепрыгивает через ограничения тотала ... Wink

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

Quote:
с результатами поиска тоже новая фича в бете не работает.

В Readme, да и выше в теме, упоминается, что только для папок, выбранных в результатах поиска явно, и для их подпапок. Если выделить в результатах поиска 3 несчастных файла, тотал имена их папок присылать не станет.

#56:  Author: DrakonHaSh PostPosted: Sat Nov 24, 2012 21:30
    —
MVV wrote:
Quote:
с результатами поиска тоже новая фича в бете не работает.

В Readme, да и выше в теме, упоминается, что только для папок, выбранных в результатах поиска явно, и для их подпапок. Если выделить в результатах поиска 3 несчастных файла, тотал имена их папок присылать не станет.

моя твоя не понимай Smile
захожу в папку, делаю поиск *.pdf, файлы на панель:
e:\disk4\121107\hack\[ Shellcoding in Linux ]21013.pdf
e:\disk4\121107\hack\[Linux debugging & anti-debugging]aczid.pdf
e:\disk4\121107\hack\ssh_overview.pdf
e:\disk4\121107\hack\Особенности национальной отладки в UNIX+\SSTIC03-Vanegue_Roy-Reverse_Intel_ELF [elfsh франчузкий].pdf
*, alt-f5, CopyTree
=>
c:\!test!\CopyTree\[ Shellcoding in Linux ]21013.pdf
c:\!test!\CopyTree\[Linux debugging & anti-debugging]aczid.pdf
c:\!test!\CopyTree\ssh_overview.pdf
c:\!test!\CopyTree\Особенности национальной отладки в UNIX+\SSTIC03-Vanegue_Roy-Reverse_Intel_ELF [elfsh франчузкий].pdf

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

MVV wrote:
Везде есть грань разумного.

согласен. по жизни неоднократно наблюдал что у всех эта грань "почему-то" в достаточно разных местах проходит. т.е. два умных и профессиональных человека могут иметь эту грань в разных местах Smile всегда любил пытаться заглядывать за свои грани в грани других, если они находились дальше моих. часто оказывалось что и невозможное возможно [т.е. то, что я считал неразумным оказывалось разумно] Wink

#57:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Nov 24, 2012 21:47
    —
Промежуточные пути были воссозданы без учета их привязки к физическим каталогам. В общем, не вижу смысла обсуждать эти детали, будет время и желание - как-нибудь доделаю.

#58:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Dec 04, 2012 18:43
    —
Вторая бета с поддержкой копирования дат. На этот раз копируется дата для каждой папки, создаваемой внутри базовой директории назначения (т.е. папки, указываемой в поле "Копировать выделенные объекты в:").

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

#59:  Author: sa PostPosted: Tue Dec 04, 2012 19:35
    —
У меня вторая бета с Ctrl+B не работает, а из результатов поиска нормально.

#60:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Dec 04, 2012 21:28
    —
Да, я тоже проверил поиск, а про Ctrl+B не подумал (разница в том, что в Ctrl+B путь строится из 2 частей - исходного пути и относительных путей к файлам, а в поиске первое пусто, а второе содержит пути целиком). Я там не с того места путь к базовой папке источника восстанавливал (для случая, если кто-то выбирает вариант, отмеченный восклицательным знаком). Если интересна техническая часть, при создании папок я запоминаю внутреннюю часть пути (относительно базовой директории), а при копировании дат просто записываю эти части в 2 буфера, при этом базовая часть путей в буферах уже есть, т.к. эти же буфера используются в цикле копирования (кроме упомянутого случая, когда последний обрабатываемый файл лежит вне базовой папки), а внутреннюю я дописываю.

Назовём её (его) третьей бетой.

Добавлено спустя 2 часа 4 минуты:

Четвёртая бета. Исправлен глюк с периодическими отказами в копировании первых файлов в создаваемых директориях.

#61:  Author: sa PostPosted: Wed Dec 05, 2012 00:03
    —
Да, так гораздо лучше. До этого у меня на один из нескольких дисков всё копировалось без проблем, а на другие с пропуском файла.

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

#62:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Dec 05, 2012 00:53
    —
Пятая бета. Папка считается успешно скопированной, если она была успешно создана (тогда для неё и дата будет копироваться) или при создании возникла ошибка ERROR_ALREADY_EXISTS.

#63:  Author: sa PostPosted: Wed Dec 05, 2012 09:53
    —
Теперь хорошо. Спасибо за труды!

#64:  Author: DrakonHaSh PostPosted: Wed Dec 05, 2012 15:29
    —
MVV wrote:
Пятая бета.

Потестил с результатами поиска и ctrl-b - все работает прекрасно.
Спасибо !

#65:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Dec 19, 2012 20:29
    —
Официально зарелизил текущую версию на wincmd.ru.

Copy Tree 1.2.1.192 (изменения с 1.1.2.134):
+ опция копирования временных меток каталогов
+ копирование зашифрованных файлов в папку, не поддерживающую шифрование (перемещение не поддерживается)
* теперь пустые папки по умолчанию копируются (как в самом ТК; используйте маску исключения "\", если не нужно)

Very Happy

#66: Баг Author: caxap PostPosted: Thu Aug 08, 2013 14:44
    —
Спасибо за полезнейший плагин!
Copy Tree 1.2.1.196
Quote:
+ опция копирования временных меток каталогов

Не работает.
Win7-32
Quote:
[Copy Tree]
AskOptionsOnWin=0
AskOptionsAlways=1
CopyDirTimeStamp=1
DlgCopyOptsSize=466,243


Posted after 23 minutes:

Уточнение по поводу бага

После недолгого разбирательства выяснилось, что
Quote:
+ опция копирования временных меток каталогов

Не работает.

Только если глубина копирования каталогов включает в себя букву диска:
Quote:
D\Magic\WORK\totalcmd\plugins\WCX\Blat\

При копировании без неё - даты каталогов сохраняются:
Quote:
Magic\WORK\totalcmd\plugins\WCX\Blat\

Баг не смертельный но досадный. Дело в том, что при копировании файлов с компов клиентов лично я использую схему вида:
Quote:
%имя клиента (компа)%\%диск%\каталоги\подкаталоги\...
Для более "наглядного" анализа и т.п.
Копирую не через кнопку с параметрами, а через диалог программы.
Уважаемый автор, могли-бы Вы "допилить" плагин, что-бы он устанавливал текущую дату ТОЛЬКО каталогу, соответствующему БУКВЕ ДИСКА (остальные подкаталоги - со своими датами)?
Заранее спасибо!

#67:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Aug 08, 2013 16:27
    —
Действительно, если дублировать путь, включая букву диска, даты не копируются.

caxap wrote:
Уважаемый автор, могли-бы Вы "допилить" плагин, что-бы он устанавливал текущую дату ТОЛЬКО каталогу, соответствующему БУКВЕ ДИСКА (остальные подкаталоги - со своими датами)?

В смысле? У всех внутренних каталогов есть каталоги-оригиналы, с которых эта дата берётся после копирования файлов. У каталогов, получающих имя буквы диска, таким оригиналом является корневой каталог диска, для которого даты нигде не отображаются.

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

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

Добавлено в 19:41:

CopyTree 1.2.2.204:
* улучшено обнаружение дубликатов последних масок
* исправлено копирование временных меток каталогов на максимальном уровне (с буквой диска)
* пара ошибок при копировании из сетевого пути
* ошибка копирования в Windows 2000 (с версии 1.2.1.192)

#68:  Author: caxap PostPosted: Sat Aug 10, 2013 09:58
    —
Хочу выразить Вам благодарность за оперативность и отзывчивость. Спасибо огромное!

Что касается этого:
MVV wrote:
Хм, после исправления бага для папок с буквами дисков тоже стали устанавливаться даты. Только вопрос, кому они нужны, если дату модификации корневых папок нигде нельзя увидеть.
то хочу сказать следующее: то, что папкам с буквами дисков стали устанавливаться даты (пока не понял, по какому принципу. С разными файлами и вариантами - разные результаты, хотя копируються с одного диска), отличные от текущего времени (времени копирования) - это тоже баг (менее существенный чем исправленный). Наличие текущей на время копирования даты полезно для понимания того, когда именно производилось копирование и в каком состоянии (в каком составе) файлы на диске в это время находились.
Короче - желательно чтобы каталогу, соответствующему букве диска, имхо, желательно принудительно устанавливать дату копирования.
Кстати, появилась ещё одна мысль:
Может стоит ввести ээ... как-бы это выразиться... RE-data (опционально) для каталогов, если у пользователя возникнет "блажь" - копировать ещё файлы и папки (через какое-то время) в ту-же папку что и раньше, а дата некоторых каталогов уже сменилась.

#69:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Aug 10, 2013 20:29
    —
caxap wrote:
Хочу выразить Вам благодарность за оперативность и отзывчивость. Спасибо огромное!

Всегда пожалуйста. Smile

caxap wrote:
Может стоит ввести ээ... как-бы это выразиться... RE-data (опционально) для каталогов, если у пользователя возникнет "блажь" - копировать ещё файлы и папки (через какое-то время) в ту-же папку что и раньше, а дата некоторых каталогов уже сменилась.

Боюсь, за всеми такими извращениями мне не угнаться. Smile Да и сомневаюсь, что где-либо такое предусмотрено.

caxap wrote:
(пока не понял, по какому принципу. С разными файлами и вариантами - разные результаты, хотя копируються с одного диска)

Вообще, в выложенной версии небольшой баг, папке с буквой диска D она ставит в соответствие папку D:, что соответствует не корневой папке диска (корневая папка диска обозначается D:\), а текущей на данном диске (к файлам из которой можно обращаться без указания пути; папке, которую тотал или плагин сделал текущей наиболее недавно, и это необязательно папка с активной панели). Естественно, в разные моменты текущие папки разные, потому и даты разные. Например, для диска с тоталом часто текущей оказывается папка тотала (видимо, тотал частенько обращается к файлам из своей папки).

caxap wrote:
Короче - желательно чтобы каталогу, соответствующему букве диска, имхо, желательно принудительно устанавливать дату копирования.

То есть, тупо ничего не делать, т.к. при модификации все каталоги получают текующую дату автоматически. Very Happy

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

#70:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Aug 28, 2013 20:25
    —
В окончательном варианте каталог-буква диска получает текущие дату/время (просто не задаю её явно).

Copy Tree 1.2.2.210
* каталог-буква диска получал неправильную временную метку
* исправлена шкала прогресса при перемещении в пределах одного тома

#71:  Author: sa PostPosted: Fri Sep 06, 2013 15:07
    —
У меня возникает закавыка при конфликте имён.
Высвечивается сообщение “Заменить верхний файл нижним?”, в то время как в верхней строчке указывается КОПИРУЕМЫЙ файл, а в нижней уже имеющийся в целевом каталоге.

#72:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Sep 06, 2013 16:45
    —
Да, что-то тут нечисто. Very Happy

#73:  Author: MVVLocation: Ростов-Дон PostPosted: Sun Sep 15, 2013 00:22
    —
Собрал наконец переводы и выложил обновленную версию, где исправил эти строки. Very Happy

CopyTree 1.2.3.230

#74:  Author: DrakonHaSh PostPosted: Sat Oct 19, 2013 20:01
    —
а можно добавить фичу move ?

#75:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Oct 19, 2013 20:24
    —
А можно внимательнее читать тему или хотя бы описание плагина? Very Happy
Она давно есть, галку "переместить в архив" отметить нужно в диалоге упаковки.

#76:  Author: DrakonHaSh PostPosted: Sun Oct 20, 2013 15:19
    —
MVV
Спасибо.
видел и знал про эту опцию, но у меня она называется "Удалить исходные файлы после упаковки". поэтому думал что происходит не перемещение, а копирование+удаление

#77:  Author: MVVLocation: Ростов-Дон PostPosted: Sun Oct 20, 2013 17:39
    —
DrakonHaSh,
В оригинале она называется Move to archive, я у себя её назвал Переместить файлы в архив (удалить после упаковки).
С точки зрения архивов файлы действительно просто удаляются, в моем случае вызывается функция перемещения вместо функции копирования.
В любом случае, предложения по переводу рассматриваются здесь.

#78:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Oct 20, 2013 18:11
    —
DrakonHaSh
MVV
Предложения, конечно, рассматриваются. Но нетрудно заметить, что при включении этой галочки изменяется заголовок окна и в русском интерфейсе появляется надпись "Переместить (УДАЛИВ исходные) файлы (столько-то шт.) в архив". Выделено мной. В целом эта надпись и название опции дают исчерпывающую информацию о том, что делается. Не говоря про то, что перемещение в архив и есть копирование(упаковка)+удаление.

#79:  Author: MVVLocation: Ростов-Дон PostPosted: Sun Oct 20, 2013 20:04
    —
Avada,
Оно-то изменяется, но, пока не включишь опцию, слова переместить нигде не видно, в отличие от оригинала.

 Hidden text

#80:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Oct 20, 2013 21:38
    —
MVV
Если перемещение вместо копирования выбрать до открытия диалога, то сразу всё и отобразится: и опция будет включена, и заголовок правильный. Я обычно так и делаю. Smile

 Hidden text

#81:  Author: DrakonHaSh PostPosted: Wed Oct 30, 2013 21:20
    —
версия 1.2.3.230 x32 win7x64

пытаюсь перенести в отдельную папку результаты поиска с сохранением 2-х уровней папок.

результаты поиска:
e:\disk4\123\11-x - 12-x\1206-1209\120601\scr dems\
...
e:\disk4\123\11-x - 12-x\1206-1209\120921\scr dems\
e:\disk4\123\11-x - 12-x\121012\scr dems\
...
e:\disk4\123\11-x - 12-x\121229\scr dems\

alt-f5, перенести файлы, copytree => выбираю глубину 3
! 120601\scr dems\
=>
после переноса части файлов выдает:
---------------------------
Copy Tree
---------------------------
Нельзя копировать файлы с другим базовым путём.

E:\disk4\123\11-x - 12-x\1206-1209\
E:\disk4\123\11-x - 12-x\121012\scr dems\

Пропустить этот файл и продолжить?
---------------------------
ОК Отмена
---------------------------


и такое встречалось, пока все перенес, раз 10, не очень удобно Sad
можно добавить возможность чтобы копирование/перенос шли не только как сейчас, по логике "Начальная отсекаемая часть", но и как "Уровень конечной копируемой части" - в моем случае надо было бы указать что копировать/переносить надо последние 2 каталога.


еще один не особо удобный момент, что при перемещении перемещаются только файлы, а каталоги остаются на диске (пустыми).

#82:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Oct 30, 2013 22:18
    —
Полагаю, вариант "скопировать n нижних уровней" можно реализовать через поиск и выделение этих каталогов. Основная цель плагина - как раз воссоздавать структуру каталогов верхнего уровня.

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

Quote:
еще один не особо удобный момент, что при перемещении перемещаются только файлы, а каталоги остаются на диске (пустыми).

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

#83:  Author: Juice PostPosted: Mon Dec 23, 2013 15:29
    —
Прикольный плуг. Жаль, что слишком поздно Вы его написали - приходилось WinRAR юзать для таких целей.

#84:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Dec 23, 2013 16:04
    —
В тотале же встроенный зип всегда был, который явно проще, чем WinRar...
А написал, когда попробовал TreeCopyPlus и понял, насколько он неудобен в использовании в плане ввода числа пропускаемых от корня уровней.
И почему слишком поздно? Кто-то умирает? Жизнь продолжается, и тотал с нами! Very Happy

#85:  Author: Juice PostPosted: Tue Dec 24, 2013 00:06
    —
Да, я уже заметил, что лохонулся с формулировкой своего сообщения Smile
У встроенного zip'а нет функций "Сохранять полные пути" и "Сохранять полные пути, включая букву диска", поэтому WinRAR.
Поздно потому, что я сменил род деятельности. Т.е. для меня этот плуг не так актуален, как раньше. Вот где меня подвела моя формулировочка Smile

#86:  Author: MVVLocation: Ростов-Дон PostPosted: Mon May 05, 2014 00:34
    —
CopyTree 1.2.4.252:
+ опция удаления пустых исходных каталогов при перемещении
* временные метки копируются и при перемещении
* временные метки копируются и для существующих целевых каталогов
* неверный порядок табуляции в диалоге настроек

#87:  Author: sa PostPosted: Mon May 05, 2014 10:50
    —
Почему-то при наличии каталога-буквы диска, все вложенные папки тоже стали получать текущие дату/время.

#88:  Author: MVVLocation: Ростов-Дон PostPosted: Mon May 05, 2014 11:45
    —
Я перенес чтение дат в другое место (перед началом обработки каталогов, а не на заключительной стадии), скорее всего, проблема в этом. Посмотрю.

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

Исправил, выложил обновленную версию. Спасибо за рапорт.

CopyTree 1.2.4.256

#89:  Author: sa PostPosted: Mon May 05, 2014 14:43
    —
Теперь уже без привязки к каталогу – букве диска: иногда всё же проскакивают папки с текущей датой/именем (в обеих майских версиях). Закономерности не понял, результаты из вида без подкаталогов и результатов поиска могут отличаться количеством таких папок. В версии 1.2.3.230 такого поведения не обнаружил.

#90:  Author: MVVLocation: Ростов-Дон PostPosted: Mon May 05, 2014 15:09
    —
В 252 я делал чтение дат через FindFirstFile, в 256 вернул, как было до - через GetFileTime. Точно даты у исходных папок не текущие?

Ага, вижу, есть дело, баг в алгоритме пропуска дубликатов путей для постобработки.

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

CopyTree 1.2.4.260

Просьба и эту потестировать. Но вроде на этот раз исправил окончательно.

Когда я стал выносить на постобработку (на установку дат и удаление пустых каталогов) все каталоги, а не только создаваемые явно (как делали предыдущие версии), стал вопрос фильтрации дубликатов, и этот алгоритм фильтровал слишком много.

#91:  Author: sa PostPosted: Mon May 05, 2014 16:07
    —
Спасибо! Обе проблемы исправлены.

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

Quote:
при обычном копировании ТК сваливает все файлы в одну кучу, не сохраняя оригинальную иерархию каталогов.
С учётом того, что TC научился таки "Сохранять пути относительно текущего каталога" при копировании из вида без подкаталогов, можно как-то помягче при случае сформулировать.

#92:  Author: MVVLocation: Ростов-Дон PostPosted: Mon May 05, 2014 21:07
    —
Отлично, что всё работает!

Спасибо, что напомнил про новую опцию, добавлю уточнение.

#93:  Author: sa PostPosted: Tue May 06, 2014 13:45
    —
MVV wrote:
временные метки копируются и для существующих целевых каталогов
При первоначальном копировании (из вида без подкаталогов, например), временные метки успешно сохраняются для каталогов.
Но при повторном копировании тех же файлов (неважно с перезаписью или нет) временные метки для каталогов не копируются и остаются теми, которые я (или NTFS) для них установил.
Так не должно быть?

#94:  Author: MVVLocation: Ростов-Дон PostPosted: Tue May 06, 2014 15:11
    —
Скопировал структуру, проверил: даты скопировались. Принудительно установил всем скопированным папкам текущую дату, скопировал поверх них, заменил всё, проверил: даты снова скопировались. Снова принудительно установил текущую дату, скопировал поверх, на этот раз пропустив всё, проверил: даты опять скопировались. У тебя билд 260?

#95:  Author: sa PostPosted: Tue May 06, 2014 15:38
    —
MVV wrote:
У тебя билд 260?

Да. Не пойму пока в чём дело у меня. Стоит удалить (переименовать) одну папку в итоговой структуре, как при повторном копировании метки восстанавливаются, но только для этой и родительских, по отношению к ней, папок.

#96:  Author: MVVLocation: Ростов-Дон PostPosted: Tue May 06, 2014 15:46
    —
Если разберешься, как воспроизводить, выложи инструкцию и архив с тестовой иерархией, которую надо скопировать.

#97:  Author: sa PostPosted: Tue May 06, 2014 16:04
    —
Ты обратил внимание, что я копировал исключительно файлы? Да и откуда бы взялись папки в виде без подкаталогов.

#98:  Author: MVVLocation: Ростов-Дон PostPosted: Tue May 06, 2014 17:02
    —
Создал тестовую иерархию (33 файла, 18 каталогов, до 5 уровней вложенности). Всем объектам дата - 1990 год.
Жму Ctrl+B, выделяю все файлы, копирую.
Открываю поиск в целевой панели, вывожу результаты панель: все объекты датированы 1990 годом.
Переименовываю в целевой панели папку 3 уровня, у которой внутри ещё 2 уровня, дата меняется только у её надпапки.
Копирую все файлы в эту панель повторно, заменяю всё: все объекты вновь датированы 1990 годом, включая те, что внутри этой папки.

#99:  Author: sa PostPosted: Tue May 06, 2014 17:56
    —
Тестовая структура: папка TEST, в ней три папки 1, 2 и 3, в каждой из которых файл NO.BAR. Папки 1,2,3 датированы 1990 годом. На папке TEST нажимаю Ctl+Shift+B, выделяю все файлы, копирую с помощью CopyTree. Перехожу в целевой панели к папкам 1,2,3, выделяю их и устанавливаю для папок текущую дату и время (вместо 1990), поднимаюсь на уровень вверх (к папке TEST).
Из исходной панели снова копирую все файлы (с перезаписью или нет). У папок 1,2,3 в целевой панели остаётся текущая дата.

#100:  Author: MVVLocation: Ростов-Дон PostPosted: Tue May 06, 2014 20:09
    —
Ага, подтверждаю.

Проблема всё-таки в том, что папки существуют. Файлы успешно копируются, и до кода, который запоминает структуру каталогов для постобработки, дело ни разу не доходит.

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

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

CopyTree 1.2.4.264

Ещё раз спасибо за проявленную настойчивость при тестировании. Smile

#101:  Author: sa PostPosted: Wed May 07, 2014 09:57
    —
Теперь нормально.

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

#102:  Author: MVVLocation: Ростов-Дон PostPosted: Wed May 07, 2014 10:19
    —
Ага, я об этом даже думал, уточню.
Пока скажу так, что ограничиваю иерархию, для которой копируются метки, каталогами, расположенными ниже базового, т.е. теми, которые попадают в папку назначения (выше уже некуда). Независимо от режима панели (по-моему, для панели результатов поиска должно быть ясно ещё меньше, с какого уровня они копируются).

#103:  Author: sa PostPosted: Wed May 07, 2014 10:52
    —
MVV wrote:
т.е. теми, которые попадают в папку назначения

И только теми из них, в которые производилось реальное копирование (вариант "нет - для всех" не сработает в общем случае).

#104:  Author: MVVLocation: Ростов-Дон PostPosted: Wed May 07, 2014 11:13
    —
Да. Папки для пропущенных файлов и создаваться не будут.

#105:  Author: sa PostPosted: Wed May 07, 2014 11:37
    —
Я скорее о случае с уже существующими целевыми каталогами, временные метки которых останутся необновлёнными без реального в них копирования.

#106:  Author: MVVLocation: Ростов-Дон PostPosted: Wed May 07, 2014 13:17
    —
По-моему, это логично. Если ты копируешь файл из одной папки, то почему у соседней папки, не содержащей его, должна измениться временная метка?

#107:  Author: sa PostPosted: Wed May 07, 2014 14:01
    —
Да я не против такого поведения, но лучше, если логика будет разъяснена, чтобы не было домыслов типа: сейчас я быстренько (без повторного копирования файлов), восстановлю временные метки целевых каталогов.

#108:  Author: MVVLocation: Ростов-Дон PostPosted: Wed May 07, 2014 17:38
    —
Я написал так:
Quote:
Если включены опции копирования временных меток каталогов и/или удаления пустых исходных каталогов, после завершения этапа копирования файлов выполняется этап постобработки каталогов, файлы из которых были скопированы. На этом этапе в зависимости от выбранных опций выполняются копирование временных меток каталогов (для каталогов, дублируемых в папке назначения) и удаление пустых исходных каталогов (каталогов, которые стали пустыми после переноса файлов из них в папки назначения и удаления пустых подпапок).

#109:  Author: FlasherLocation: Москва PostPosted: Fri May 09, 2014 23:31
    —
MVV
Как насчёт объединить с функционалом NTLinksMaker для экономии места на дисках?

#110:  Author: MVVLocation: Ростов-Дон PostPosted: Fri May 09, 2014 23:34
    —
Функционал по-моему совершенно разный. И потом, голый плагин не сможет сам себя от администратора запустить, чтобы создать символическую ссылку, в отличие от экзешника.

#111:  Author: FlasherLocation: Москва PostPosted: Fri May 09, 2014 23:44
    —
Функционал-то разный, но цель объединить актуальная.
Никто не мешает запускать ТС с админскими правами, если уже не под админом сидишь как многие.

#112:  Author: MVVLocation: Ростов-Дон PostPosted: Fri May 09, 2014 23:49
    —
Это будет большая каша из копирования и создания ссылок, в которой хрен что поймёшь...

Меня лично напрягает каждый запускать админский TC, чтобы поменять атрибут, удалить папку, содержимое которой юзерам не видно, и т.п. Гораздо удобнее, когда есть кнопка, позволяющая выполнить операцию с повышением.

#113:  Author: FlasherLocation: Москва PostPosted: Fri May 09, 2014 23:51
    —
Да есть кнопка на батник. Просто твой плагин предполагает какие-то диалоги и прогресс-бар. Плюс к этому можно было бы выбирать тип ссылки.

А понимать будет тот, кто копирует и знает о последствиях. Но главная цель - экономия.

#114:  Author: sa PostPosted: Tue May 13, 2014 13:35
    —
Quote:
Модуль позволяет сохранять иерархию каталогов при копировании или перемещении файлов в плоском режиме (по умолчанию Ctrl+[Shift+]B; в официальной русской локализации команда "Показать все файлы без подкаталогов") и из панели результатов поиска (в официальной русской локализации кнопка "Файлы на панель" в диалоге результатов поиска).

Не стоит ли упомянуть о возможности копирования в обычном режиме (не из вида без подкаталогов и из панели результатов поиска)? Для кого-то она может оказаться удобной штукой.

#115:  Author: MVVLocation: Ростов-Дон PostPosted: Tue May 13, 2014 15:35
    —
Хорошая мысль.
Quote:
Модуль позволяет сохранять иерархию каталогов при копировании или перемещении файлов относительно выбранного уровня. Это особенно полезно в плоском ...

#116:  Author: LNSLocation: Питер PostPosted: Tue May 13, 2014 23:55
    —
Установил плагин в автоматическом режиме. Почему-то установился в папку WLX

#117:  Author: MVVLocation: Ростов-Дон PostPosted: Wed May 14, 2014 00:10
    —
Полагаю, у тебя установлен плагин Imagine.wlx, с которым в комплекте идёт плагин Imagine.wcx.

Когда тотал видит архиваторный плагин в папке плагинов просмотрщика, он предлагает ставить новые архиваторные плагины в эту же папку (не только мой, а все).
Гислеру давно сообщали об этом, об этом сообщали, но так ничего и не изменилось.

#118:  Author: LNSLocation: Питер PostPosted: Wed May 14, 2014 07:46
    —
MVV
спасибо за разъяснение, не знал об этом.

#119:  Author: sa PostPosted: Wed May 14, 2014 15:26
    —
Удобно использовать плагин для копирования файлов из отдельных папок архива с использованием масок для включения/исключения (особенно в сочетании с маской "\" для пропуска пустых каталогов). Тотал распаковывает по Alt+F9 из всех папок архива и пустые папки не умеет выбрасывать по ходу дела.

#120:  Author: MVVLocation: Ростов-Дон PostPosted: Wed May 14, 2014 16:00
    —
Только для этого тоталу придётся сначала распаковать весь архив во временную папку... В то время как если зайти в архив и выделить файлы/папки (можно сначала нажать Ctrl+B), то будут извлечены только эти файлы, и созданы только необходимые для этого папки.

#121:  Author: sa PostPosted: Wed May 14, 2014 16:12
    —
MVV wrote:
можно сначала нажать Ctrl+B

Тогда уж Ctrl+Shift+B, коли речь шла об отдельных папках. Да, так будет, наверное экономнее…А может, и нет.
Пардон, Ctrl+Shift+B кажется, работает в архивах также, как Ctrl+B.

MVV wrote:
Только для этого тоталу придётся сначала распаковать весь архив во временную папку...

Как будто не весь, а только выбранные папки. Говоря об отдельных, я как раз имел в виду выбранные папки.

#122:  Author: sa PostPosted: Thu May 15, 2014 09:45
    —
sa wrote:
и пустые папки не умеет выбрасывать по ходу дела.

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

#123: Спасибо за отличный плагин Author: daniel.vaden PostPosted: Thu Jan 15, 2015 16:19
    —
Спасибо Вам за отличный плагин!

Понимаю, что у Вас своё видение развития данного плагина, но может быть существует такая возможность - добавить перенос всех атрибутов файла (т.е. добавить перенос атрибута дата создания (=tc.Дата создания.)).

Это решило бы огромное кол-во рутины при работе.

В текущей версии переносится дата модификации (=tc.Дата модификации.)

Ещё раз, Спасибо !

#124:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Jan 15, 2015 16:39
    —
Да, т.к. именно дата модификации указывает, когда файл редактировался. А дата создания лишь указывает, когда он был создан, и для нового файла, что вполне логично, она отличается. Не понимаю я эту странную тенденцию завязываться на даты создания и последнего доступа, которые изменяется при любом копировании/архивировании и т.п. файла.

Посмотрю, впишется ли эта функция в текущий алгоритм.

Добавлено спустя 2 часа 34 минуты:

Вписалось хорошо. В конфиге использовал названия опций, как у тотала. В диалог настройки тоже добавил.

CopyTree Beta 272

Проверяй все 4 режима:
Quote:
CopyAllTimes=0, CopyDirTimeStamp=0: только для файлов, только модификации
CopyAllTimes=0, CopyDirTimeStamp=1: для файлов и каталогов, только модификации
CopyAllTimes=1, CopyDirTimeStamp=0: только для файлов, все три метки
CopyAllTimes=1, CopyDirTimeStamp=1: для файлов и каталогов, все три метки

#125:  Author: daniel.vaden PostPosted: Fri Jan 16, 2015 10:37
    —
Попробовал, погонял. Всё отлично работает с файлами и каталогами ! спасибо !

#126:  Author: sa PostPosted: Fri Jan 16, 2015 12:08
    —
Тоже попробовал. Работает!

MVV
Вопрос, не связанный с последними изменениями.
При копировании из обычного режима (не плоского и не результатов поиска) исключающая маска "\" должна работать для пропуска пустых каталогов? Сейчас не действует.

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

Впрочем, есть вариант, действующий и там, и там: "*.txt | \"

#127:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Jan 16, 2015 17:53
    —
sa,
Вроде работает исключение:
Code:
|\

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

#128:  Author: sa PostPosted: Fri Jan 16, 2015 18:25
    —
Я ошибочно вводил маску \ без предшествующего символа |. В одном режиме она тем не менее срабатывала, а в другом нет.

#129:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Jan 16, 2015 18:37
    —
Из плоского режима ты не сможешь выделить пустые папки, и тотал не включит их в список. А при копировании из обычного перечисление выполняет плагин. Возможно, дело в этом, хотя я не совсем понял, как ты пробовал.

Без этого символа маска скорее разрешающая. Very Happy И должна копировать только пустые папки.

#130:  Author: sa PostPosted: Fri Jan 16, 2015 19:21
    —
MVV wrote:
Возможно, дело в этом,
Наверное.
Quote:
не совсем понял, как ты пробовал
*.txt \
Quote:
Без этого символа маска скорее разрешающая.
Если не ошибаюсь, она имеет резон в качестве маски для включаемых файлов только для случая, когда других масок нет (причём только при копировании из обычного режима). В остальных случаях она не нужна (бесполезна).
Да и в этом единственном случае её можно заменить на какую-нибудь bla-bla.

#131:  Author: sa PostPosted: Tue Jan 27, 2015 11:30
    —
MVV wrote:
А ведь Гислер-таки решил проблему. Very Happy
Теперь тотал (начиная с 8.01 RC5) не спрашивает о перезаписи файлов самими собой при копировании из результатов поиска.

Всё-таки что-то не так у него получилось. Если в результаты поиска вывести два файла и копировать их вместе несколько раз подряд, то у меня итог получается разный: копируются то два, а то и один файл. Проблема воспроизводилась с CopyTree, DiskDirExtended, 7z (но не с ZIP). Видимо не случайно на оффсайте White намекал на ошибку инициализации
Quote:
The removal of duplicates does not always work. It looks like there is a initialization error somewhere.

#132:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Jan 27, 2015 12:54
    —
Очень мало подробностей для воспроизведения проблемы. Какие два файла, в каких папках, сколько раз в результатах они должны повторяться... В личку скинь пример структуры каталогов и алгоритм.

#133:  Author: sa PostPosted: Mon Feb 02, 2015 14:38
    —
MVV wrote:
Какие два файла,
произвольные
Quote:
в каких папках,
оба в одной папке (произвольной)
Quote:
сколько раз в результатах они должны повторяться
не должны повторяться.

Алгоритм заключается в упаковке указанных двух файлов из панели результатов поиска с помощью плагина CopyTree (или DiskDirExtended, или 7z). Упаковку производить два раза, затем сверить результаты между собой. По два ли файла будет упаковано в обоих случаях?

#134:  Author: vlsh PostPosted: Thu Aug 13, 2015 23:24
    —
долго искал - спасибо - супер плагин
Однако погонял не мало тысяч файлов и стала явно заметна следующая бага:
- если копировать файлы количеством до 300-500 - все проходит на ура
- но если работать с 1000-ми, а в моем случае нужно было скопировать со структрами порядка 10 000 файлов - то по результату на выходе получаю 70% копи + 30% от невозможности совершить действия с перечислением имен...
Пачему так происходит - это вопрос к создателю.
В итоге приходится - делать частями по 500 - ну и как понимаете это больше похоже на рукотворный "тяжелый труд" - чем на автоматизацию))))

#135:  Author: FlasherLocation: Москва PostPosted: Fri Aug 14, 2015 20:09
    —
vlsh
Если поиск не сломался, то как минимум можно было ещё проверить TreeCopyPlus, не говоря уже о кнопках, скриптах и утилитах.

Но благо создатель вездесущь, посему и за ним дело не станет.

#136:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Aug 14, 2015 22:44
    —
vlsh,
Т.е. при повторном копировании файлы, которые выдавали ошибку в первый раз, копировались? Или нет? Нужно больше деталей.

Попробовал из папки C:\Windows\winsxs\ скопировать 10000+ файлов на 1.7 ГБ, не скопировался только один, но он и в одиночку не копируется, т.к. его нельзя прочитать без прав администратора.

Не поленился и скопировал из той же папки 40000+ файлов на 7 ГБ (на этот раз из панели результатов поиска, а не из плоского режима), опять же не скопировался лишь один, по той же причине. Но забавно, что перед этим тотал 2 минуты грузил ядро процессора на полную - видимо, фильтровал дубликаты в списке файлов.

#137:  Author: vlsh PostPosted: Sat Aug 15, 2015 02:31
    —
сорри... придется взять свои слова обратно..
по ходу - нашлись порядка 15% файлов из 10000 которые вообще не хотели копироваться даже по одному и отдельными потоками, пишет:
- "не смогли переименовать-копировать некоторые детали"
никаких запретов на файлах, никаких серьезных изменений - но файлы не хотят копироваться с путями (только в чистую копи Ф5 или Ф6)
Все отсльаные 85% - одним потоком на ура... пока выясняем причины с файлами....

#138:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Aug 15, 2015 02:48
    —
Так, файлы читаются и копируются - значит, прав хватает.

Может быть, слишком длинные пути у файлов? Или получаются на получателе слишком длинные? Больше 259 символов в пути не поддерживается.

#139:  Author: Skif_off PostPosted: Sat Aug 15, 2015 03:15
    —
MVV wrote:
Больше 259 символов в пути не поддерживается.

Нет ли в планах убрать это ограничение?

#140:  Author: vlsh PostPosted: Sat Aug 15, 2015 11:19
    —
MVV wrote:
.....Больше 259 символов в пути не поддерживается.
хм... а вот это уже интересно
а как обстоит с именами файлов? (поп ходу в моем случае некоторые имена имеют длину - до 100 исмволов с пробелами)

#141:  Author: FlasherLocation: Москва PostPosted: Sat Aug 15, 2015 11:54
    —
vlsh
Это ограничение касается полного пути, включая имя. Т.е. если учесть, что файл лежить в корне диска, то максимально допустимое имя 259 - 3 = 256, где 3 - это 'X:\'.


Last edited by Flasher on Tue Sep 08, 2015 19:01; edited 1 time in total

#142:  Author: vlsh PostPosted: Sat Aug 15, 2015 12:10
    —
Flasher wrote:
vlshЭто ограничение касается полного пути, включая имя.....
думаю, тогда все ясно (опробируем)
кстати, если не в тему (можно ссылочкой)- подскажите как быстро уменьшить имена файлов (чисто с начала убрав символы) или как скопировать и откорректировать путь, обрезав, например пару последних подкаталогов или отсчеч половину и указав новый на середине....

#143:  Author: FlasherLocation: Москва PostPosted: Sat Aug 15, 2015 12:50
    —
vlsh
За "не в тему" тут по шапке дают.

#144:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Aug 15, 2015 19:50
    —
А потестируйте-ка новую версию, я добавил поддержку длинных путей (до 1024 символов).

Copy Tree Beta 290

#145:  Author: vlsh PostPosted: Sat Aug 15, 2015 22:22
    —
MVV wrote:
А потестируйте-ка новую версию, я добавил поддержку длинных путей (до 1024 символов).
Copy Tree Beta 290

)) супер.. ""целый день сегодня убил на переименование 100 файлов из 420 - чтобы только пути сохранить + чтение топиов на способы обрезания путей... ""
хоть и с небольшим оозданием - но правда за Вами - все ОК, зато остальное улетело в копи как ветер....
работает прекрасно, если учесть что вся суммарная максимальная строка из всех у меня была даже 655 символов с пробелми)))) бывет даже такое))
конечно спасибо

#146:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Aug 17, 2015 00:06
    —
Хорошо, что работает. Smile

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

#147:  Author: vlsh PostPosted: Mon Sep 07, 2015 12:12
    —
и снова здрасьте
сегодня обновился ТС до 8,52 - потом выхожу на очередной копи и тут "не гугу" - и так и сяк = ничего вообще никаких путей - просто обычное копирование
мож с новым ТС еще еще не подружились?
Если я правильно понял он показывает (123) лимит символов - хотя последне 2,9 заменено - получается ТС отвалил апдейт последний ?

#148:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Sep 07, 2015 13:59
    —
Вообще, 123 - это "Синтаксическая ошибка в имени файла, имени папки или метке тома", и к длинным путям она не должна иметь отношения, т.к. плагин длинные пути копирует по-своему.

И у меня на новой версии ТК всё работает.

Проблема вообще воспроизводится?

#149:  Author: vlsh PostPosted: Tue Sep 08, 2015 00:15
    —
MVV wrote:
... Проблема вообще воспроизводится?
не понял вопроса.. - что это значит ?
1. пеерстаивл плагин - ниче..
2. переставил ТС + плагин = ниче (также)
- все с ошибкой - (123)
и 3. возвращаю версию ТС на 8,51а = все ОК
как это понять... или что выложить чтобы выводы сделать более точные?

#150:  Author: Skif_off PostPosted: Tue Sep 08, 2015 16:04
    —
vlsh wrote:
что это значит ?

Это значит, что нужно поставить чистый ТС из дистрибутива, добавить плагин и воспроизвести проблему, описав шаги, чтобы можно было повторить.

#151:  Author: vlsh PostPosted: Tue Sep 08, 2015 19:32
    —
дистрибутив из оригинала - чистота
уст СопиТрее с апд 2,9
затем копирую файл -> и та же ошибка -> 123
все остальные плагины работают - у всех все ок...

#152:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Sep 08, 2015 23:30
    —
С трудом понял, что у тебя за загадочное 2,9. У меня 290 - это номер билда, а полная версия плагина при этом 1.3.0.290.

Странно, конечно, у себя такого не замечал. На других машинах есть возможность проверить?


Last edited by MVV on Tue Sep 08, 2015 23:34; edited 2 times in total

#153:  Author: vlsh PostPosted: Tue Sep 08, 2015 23:32
    —
MVV wrote:
.... 1.3.0.290....
где? в шапке 1,2, затем упд - 290 (про нео и пишу), а где 1,3 ,0 - не видел.

#154:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Sep 08, 2015 23:36
    —
Версию плагина можно глянуть в свойствах файла, если переименовать его в DLL, и можно прочитать плагинами типа FileInfo, которым чихать на расширение. Для бет я обычно указываю только номер билда, т.к. он вполне однозначно обозначает конкретную версию (номер билда для каждой версии новый).

#155:  Author: vlsh PostPosted: Tue Sep 08, 2015 23:55
    —
а пачему не обновить версию для полной установки (автоматом)?

зы
ну капец не понимаю ()()()
уже перчистил и на чистоту ставлю с 1,2 все тоже....


все ок решилось - копи классики на др.комп - там все обновиось и затем обратно и все пошло... - что это было - осталось загадкой....

За одно вопрос:
- возможно ли копировать файл глубиной до 6 каталогов от корня ПК напрямую (без применения Ctrl+B) со всей иерархией папок?
- например файл "1.ехе" копируем палгином и на выходе получаем:
c\ProgFil\Andr\TT\ext\pip\sesion\1.ехе
было бы чудно

#156:  Author: CaptainFlintLocation: Москва PostPosted: Wed Sep 09, 2015 01:44
    —
vlsh
Настоятельно рекомендую уменьшить объём отклонений своей письменной речи от нормативов русского языка. Это последнее предупреждение.

#157:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Sep 10, 2015 11:34
    —
vlsh wrote:
а пачему не обновить версию для полной установки (автоматом)?

Это тестовая версия, выпущенная на скорую руку, а не релиз в полном составе.

vlsh wrote:
все ок решилось - копи классики на др.комп - там все обновиось и затем обратно и все пошло... - что это было - осталось загадкой....

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

vlsh wrote:
За одно вопрос:

Конечно. Просто нажми Alt+F5, выбери плагин и нажми Win+Enter для принудительного отображения диалога (в настройках плагина можно включить отображение диалога вне зависимости от состояния тотала).
vlsh wrote:
было бы чудно

Чудно было бы, если бы Readme кто-нибудь читал. Rolling Eyes

#158:  Author: FlasherLocation: Москва PostPosted: Thu Sep 10, 2015 13:31
    —
Вернусь к дневнему вопросу и ответу на него.
MVV wrote:
Окошко показывает тотал, т.к. я ему говорю, что юзер прервал операцию. А тотал у нас любитель сообщений.
И всё-таки. Избавиться от этого дурацкого окошка, хотя бы опционально, было бы весьма кстати. Это не прерывание операции (как в случае ТС с копированием), а отмена операции.

#159:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Sep 10, 2015 14:11
    —
А, вон вы о чём, при нажатии Отмена в диалоге выбора опций копирования! Это исправлю.
Я думал, что при прерывании самого процесса копирования.

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

Copy Tree Beta 292

Убрал сообщение об ошибке при нажатии кнопки Отмена в диалоге.

#160:  Author: FlasherLocation: Москва PostPosted: Thu Sep 10, 2015 14:27
    —
Гуд!

#161:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Oct 03, 2015 20:33
    —
Заметил, что при копировании в корневую папку файлы копировались не туда (т.к. F: - это текущая папка на диске F, а F:\ - корневая). Сделал, чтобы обратный слэш сохранялся, когда папкой назначения является корневая папка диска.

CopyTree 1.3.0.296

#162:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Nov 16, 2015 14:31
    —
Ещё проблема обнаружилась при работе с сетевыми путями. Корпорацию угораздило сделать префиксы для локальных и сетевых путей разными, причём при добавлении префикса для сетевого пути надо выпиливать \\ в его начале...

CopyTree 1.3.0.302

#163:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Nov 25, 2015 21:17
    —
Исправил баг в предыдущей бете, из-за которого локальное копирование не работало.

CopyTree 1.3.0.304

#164:  Author: Tempest PostPosted: Sat Jan 30, 2016 16:04
    —
День добрый. Помогите пожалуйста. Вообще ТС никогда не пользовался, поэтому понятия не имею что зачем и куда. Я просто наткнулся на проблему: у меня структура папок и в каждой папке файлы с одинаковыми именами и расширениями. Мне необходимо из каждой папки скопировать определенные файлы с одним и тем же расширением и чтобы копировались они в те же папки, то есть с сохрананием структуры папок. В целом гугл привел меня сюда, но я не могу установить даже плагин в ТС. Точнее он вроде показывает что установился, но по инструкции не могу его выбрать.

#165:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Jan 30, 2016 16:51
    —
Tempest
Извините, но я сомневаюсь в успешности обсуждения на таком уровне. Устраивать тут "курсы молодого бойца" и в десяти строках излагать правила пользования весьма сложной программой и — тем более — расширениями к ней обычно желающих не находится. К тому же это противоречит и правилам форума.

Tempest wrote:
Вообще ТС никогда не пользовался, поэтому понятия не имею что зачем и куда.

Не имеете понятия — прочтите всё необходимое в справке и прочих материалах по TC и заимейте. Показателем чего будут, в частности, точные и осмысленные пояснения о том, что уже сделано, а не то, что имеется сейчас.

Tempest wrote:
но я не могу установить даже плагин в ТС. Точнее он вроде показывает что установился, но по инструкции не могу его выбрать.

Это пока разговор ни о чём. Что означает "вроде" и каким образом оно определялось? По какой инструкции и что конкретно делалось? Не можете установить — учитесь. На этом или любом другом архиваторном плагине. До результата. Прочитайте справку и поищите по форуму (пример) и в TCKB (пример), всё объяснялось для разных видов плагинов сто раз. За вас установку всё равно никто тут выполнить не сможет, а пока с ней не разберётесь, дальше выяснять нечего.
Это не говоря уже про то, что помимо плагинов существуют, например, такие вещи как синхронизация каталогов, в том числе и выборочная.

#166:  Author: FlasherLocation: Москва PostPosted: Sat Jan 30, 2016 17:24
    —
Tempest
Если под инструкцией подразумевается прилагаемый Readme.txt, то там настолько всё разжёвано (установка, использование, настройка опций, указание масок (даже доп. источники не требуются), что вообще неясно, что тут можно ещё пояснить? Если в этой инструкции есть какие-то неясности, то просим на них и указать.

#167:  Author: G2G3G4Location: Белгород PostPosted: Wed Jul 06, 2016 10:29
    —
Уважаемый, MVV, скажите возможно ли научить ваш плагин делать следующее:

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

C: \ sdfsdfsdf \ dir
C: \ sd6546fsdf \ dir
C: \ ssdf \ dir
C: \ sdfsdf \ dir

нужно их скопировать в один каталог, с переименованием

d: \ dir
d: \ dir (1)
d: \ dir (2)
d: \ dir (3)

#168:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Jul 06, 2016 11:09
    —
Нет, так в CopyTree сделать нельзя.

#169:  Author: G2G3G4Location: Белгород PostPosted: Wed Jul 06, 2016 11:23
    —
Жаль Sad

Что же, попробую сам что-нибудь наваять Smile

#170:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Jul 06, 2016 11:53
    —
Тут проще будет в скрипт передавать выделенные папки через %WL и путь назначения через %T.

#171:  Author: G2G3G4Location: Белгород PostPosted: Wed Jul 06, 2016 13:50
    —
Проще то проще...

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

Поэтому скрипт не подходит. Sad

#172:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Jul 07, 2016 00:21
    —
Как вариант, добавить выделенные объекты в папку виртуальной панели с помощью смеси VPBatch, <put /ald и %WL, тогда папки переименуются прямо так, как нужно. А потом оттуда скопировать в фоне, будут какой-никакой прогресс и пауза...

#173:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Jul 07, 2016 10:22
    —
MVV
G2G3G4
То, что далее касается именно и конкретно плагина VirtualPanel, перенесено в тему по нему.

#174: descript.ion Author: FktrcLocation: Кемерово PostPosted: Wed Nov 23, 2016 18:16
    —
Работа с descript.ion, как понимаю, не поддерживается?

#175:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Nov 23, 2016 19:14
    —
Нет.

#176:  Author: FktrcLocation: Кемерово PostPosted: Wed Nov 23, 2016 21:06
    —
А будет?

#177:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Nov 23, 2016 21:07
    —
Сильно сомневаюсь, что у меня возникнет желание читать и писать файлы комментариев, т.к. сам я их не использую в принципе.

#178:  Author: FktrcLocation: Кемерово PostPosted: Wed Nov 23, 2016 21:08
    —
Лично мне этой вишенки не хватает, хотя торт и без нее все равно очень вкусен, спасибо кондитеру)

#179:  Author: ingerard PostPosted: Sat Dec 02, 2017 21:53
    —
Можно ли на этот плагин сделать горячую клавишу? То есть выделил папку что надо скопировать, нажал клавишу, появилось окошко выбора глубины каталога(опционально) и оно начало копировать.

#180:  Author: FlasherLocation: Москва PostPosted: Sat Dec 02, 2017 22:55
    —
ingerard
Автокликер имеется в виду? Т.е. до диалога выбора глубины этого плагина нужно дойти? Можно с пом. TCFS2.

#181:  Author: ingerard PostPosted: Sat Dec 02, 2017 23:10
    —
Flasher
То есть в тотале нет команды из коробки для быстрого выбора с каким плагинов я буду работать? Каждый раз вручную тыкать, то ли zip, rar, copytree?

#182:  Author: FlasherLocation: Москва PostPosted: Sat Dec 02, 2017 23:15
    —
ingerard
Именно так. За исключением zip (см. zipfromlist).


Last edited by Flasher on Sun Dec 03, 2017 00:45; edited 1 time in total

#183:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Dec 02, 2017 23:18
    —
ingerard
Разумеется, нет команды. Более того, последний выбранный в диалоге архиватор или архиваторный плагин и в ключе LastUsedPacker запоминается только тогда, когда с ним реально запускалась упаковка (правда, её можно и прервать, выбор уже запомнен).

#184:  Author: ingerard PostPosted: Sun Dec 03, 2017 00:53
    —
Flasher
Quote:
Можно с пом. TCFS2

Можете продемонстрировать?

#185:  Author: FlasherLocation: Москва PostPosted: Sun Dec 03, 2017 01:19
    —
ingerard
См. нижний пример. Вместо 7z пишем любой другой плагин из списка, например, CopyTree.

#186:  Author: ingerard PostPosted: Sun Dec 03, 2017 01:39
    —
Flasher
Ошибку кидает на функцию "select_wait"

#187:  Author: FlasherLocation: Москва PostPosted: Sun Dec 03, 2017 01:45
    —
ingerard
См. в той теме билд из последнего поста. ini из RU должен лежать рядом с программой. Кнопка такая:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef
"tcm(508,1) eval(select_wait(`CopyTree`, findwnd(TComboBox,,findwnd(TMyGroupBox,,findwnd(TDLGZIP))))) eval(settext_wait(`CopyTree:"%T"`,findwnd(TAltEdit,,,0,1))) loop(pressedAlt|pressedCtrl|pressedShift) send({ENTER})"
wcmicons.dll,76
CopyTree — выбор глубины папок для копирования|структуры выбранных объектов в другую панель


Last edited by Flasher on Mon Dec 04, 2017 23:47; edited 4 times in total

#188:  Author: ingerard PostPosted: Sun Dec 03, 2017 16:13
    —
Flasher
Нормально не выбирает CopyTree из списка, он как бы ставить в ComboBox "CopyTree", но по сути его не выбирает..

#189:  Author: FlasherLocation: Москва PostPosted: Sun Dec 03, 2017 18:41
    —
ingerard
Мы про кнопку говорим или ту строку?

#190:  Author: ingerard PostPosted: Sun Dec 03, 2017 21:50
    —
Flasher
Про вашу кнопку, я ее добавил и протестировал.

#191:  Author: FlasherLocation: Москва PostPosted: Sun Dec 03, 2017 22:05
    —
ingerard
Странно. А если вставить синее?: settext_wait(`CopyTree:"%T"`,findwnd(TAltEdit,,,0,1)

#192:  Author: ingerard PostPosted: Sun Dec 03, 2017 22:46
    —
Flasher
Теперь работает, спасибо Smile

#193:  Author: FlasherLocation: Москва PostPosted: Sun Dec 03, 2017 23:37
    —
ingerard
Пож-та. Код кнопки пофиксил.

#194:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Dec 04, 2017 11:35
    —
Попробовал такую команду, она правильно выбирает любой упаковщик в выпадающем списке (что ни подставлю вместо ..., оно выбирается):
Code:
TCFS2.exe /ef "tcm(508,1) eval(select_wait(`...`, findwnd(TComboBox,,findwnd(TMyGroupBox,,findwnd(TDLGZIP)))))"


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

В любом случае, это относится не к этой теме.

#195:  Author: ingerard PostPosted: Mon Dec 04, 2017 12:39
    —
Flasher
Испробовал на другом ПК и почему-то не срабатывает конечная команда send({ENTER}), просто висит окошко "Упаковка файлов". Что это может быть?

Заметил, что если изменить ENTER на ESC, то открывается диспетчер задач, то есть срабатывают дополнительно еще CTRL+SHIFT.

#196:  Author: FlasherLocation: Москва PostPosted: Mon Dec 04, 2017 20:02
    —
ingerard wrote:
Что это может быть?
Нужны условия воспроизведения. TC тот же? Или чужая сборка? Система? В поле ввода есть CopyTree спереди?
Как диспетчер может появляться, не представляю. Может, что-то стороннее резидентно отрабатывает.

#197:  Author: ingerard PostPosted: Mon Dec 04, 2017 20:28
    —
Flasher
ТС точно такой же, система Win7 Pro на работе и Win7 Home дома. На работе не срабатывает команда send({ENTER}) из-за чего я решил поэкспериментировать и вместо send({ENTER}), поставить send({ESC}), посмотреть как оно себя поведет, вот оно и открыло Диспетчер задач, то есть оно посылает не просто клавишу ESC, а еще в придачу CTRL+SHIFT, потому что именно CS+Esc откроет Диспетчер. Такие дела.

#198:  Author: FlasherLocation: Москва PostPosted: Mon Dec 04, 2017 20:36
    —
ingerard
Так "такой же" или тот же? Я спрашиваю не про версию. Битность 7-ки?
На последний вопрос не вижу ответа. Про остальное было и так понятно.

#199:  Author: ingerard PostPosted: Mon Dec 04, 2017 20:53
    —
Flasher
TC и системы 32бита. В поле ввода есть CopyTree, не выполняется только последняя команда нажатие клавиши.

Только что проверил на еще одном домашнем компе, Win7 x64, так же не срабатывает нажатие.

#200:  Author: FlasherLocation: Москва PostPosted: Mon Dec 04, 2017 21:01
    —
ingerard
Пора бы уже сюда переходить, а то к сабжу это всё весьма косвенно относится. Там же стоит поделиться тестами, если в строке параметров оставить только send({ENTER}).
И на первый вопрос опять же нет ответа. Я про сборку. Она на переноске?

#201:  Author: ingerard PostPosted: Mon Dec 04, 2017 21:33
    —
Flasher
ТС лично из оригинального дистрибутива собирал и настраивал под себя. Не левая сборка. Что такое на переноске?
Есть продвижение, с кнопки на панели работает все нормально, изначально все запускал и тестировал по горячей клавише - CS+F5. Логи запусков позже кину в тему которую вы указали.

usercmd.ini
Code:
[em_FastCopyTree]
cmd=%COMMANDER_PATH%\TCFS2\TCFS2.exe /l
param=/ef "tcm(508,1) eval(select_wait(`CopyTree`, findwnd(TComboBox,,findwnd(TMyGroupBox,,findwnd(TDLGZIP))))) eval(settext_wait(`CopyTree:"%T"`,findwnd(TAltEdit,,,0,1))) send({ENTER})"
menu=Быстрый запуск плагина CopyTree

#202:  Author: FlasherLocation: Москва PostPosted: Mon Dec 04, 2017 21:35
    —
ingerard wrote:
тестировал по горячей клавише - CS+F5.
Ха. Так а чему удивляться, если как раз эти клавиши тут отмечены? Very Happy

#203:  Author: ingerard PostPosted: Mon Dec 04, 2017 21:38
    —
Flasher
Я так и не пойму в чем конфликт? На одной системе работает, на другой нет. Smile

#204:  Author: FlasherLocation: Москва PostPosted: Mon Dec 04, 2017 21:40
    —
ingerard
Т. е. на обеих запуск проводится точно по такому же хоткею?

#205:  Author: ingerard PostPosted: Mon Dec 04, 2017 21:44
    —
Flasher
Все точно же такое, я ТС постоянно синхронизирую между компами, если я что-то менял, добавлял.

#206:  Author: FlasherLocation: Москва PostPosted: Mon Dec 04, 2017 21:45
    —
ingerard
Синхронизация — это одно, а использование горячей клавиши в обоих случаях — это другое.

#207:  Author: ingerard PostPosted: Mon Dec 04, 2017 21:48
    —
Flasher
Да, точно по такому же CS+F5

#208:  Author: FlasherLocation: Москва PostPosted: Mon Dec 04, 2017 22:04
    —
ingerard
Всё просто. В одном случае Cltr+Shift отпускались совместно или до отпускания F5, в другом — после. Отсюда и разные результаты.

#209:  Author: ingerard PostPosted: Mon Dec 04, 2017 22:11
    —
Flasher
Это глюк TCFS2? Кинул логи в соответствующую тему

#210:  Author: FlasherLocation: Москва PostPosted: Mon Dec 04, 2017 22:14
    —
ingerard
Нет, не глюк. Это логика. Держим CS, нажимаем Esc, получаем диспетчер.

#211:  Author: ingerard PostPosted: Mon Dec 04, 2017 22:19
    —
Flasher
Поставил задержку перед нажатием и сработало нормально Smile

Но только надо 1 сек ставить, с меньшей задержкой не хочет, а секунда конечно многовато.


Last edited by ingerard on Mon Dec 04, 2017 22:24; edited 1 time in total

#212:  Author: FlasherLocation: Москва PostPosted: Mon Dec 04, 2017 22:23
    —
ingerard
Ну, да, delay как вариант.

Можно ещё сделать loop на pressedCtrl + pressedShift. Тогда будет быстрее.

#213:  Author: ingerard PostPosted: Mon Dec 04, 2017 22:50
    —
Flasher
Quote:
Можно ещё сделать loop на pressedCtrl + pressedShift.

Как это сделать?

#214:  Author: FlasherLocation: Москва PostPosted: Mon Dec 04, 2017 23:39
    —
ingerard
Добавил в исходную кнопку.

#215:  Author: ingerard PostPosted: Tue Dec 05, 2017 00:20
    —
Flasher
Выбивает три сообщения подряд "Функция не реализована! 65572" и не срабатывает.

#216:  Author: FlasherLocation: Москва PostPosted: Tue Dec 05, 2017 00:21
    —
ingerard
См. 4. Загрузка при запуске ТК в Readme TCFS2Tools.

Хотя тут MVV правильный вариант с кликом ОК предложил (сам о нём сперва думал). Можно и без библиотеки:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef
tcm(508,1) eval(settext_wait(`CopyTree:"%T"`,findwnd(TAltEdit,,,0,1))) sendmsg(findwnd(TButton,,findwnd(TDLGZIP),3),$f5)
wcmicons.dll,76
CopyTree — выбор глубины папок для копирования|структуры выбранных объектов в другую панель


Last edited by Flasher on Tue Dec 05, 2017 11:30; edited 1 time in total

#217:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Dec 05, 2017 10:46
    —
Я бы всё же обрамлял командную строку в кавычки, да и чуть подсократить можно:
Code:
TCFS2.exe /ef "eval(tcm(508,1)+select_wait(`CopyTree`,findwnd(TComboBox,,findwnd(TMyGroupBox,,findwnd(TDLGZIP))))+settext(`CopyTree:"%T"`,findwnd(TAltEdit,,,0,1))+sendmsg(findwnd(TButton,,findwnd(TDLGZIP),3),$F5))"

#218:  Author: FlasherLocation: Москва PostPosted: Tue Dec 05, 2017 10:50
    —
Кавычки не люблю, когда не требуются, а settext не годится, я его заменял ещё на первом этапе.

#219:  Author: sa PostPosted: Tue Dec 05, 2017 10:53
    —
MVV wrote:
чуть подсократить можно

Наличие в кнопке конструкции eval(select_wait(… для решения рассматриваемой задачи, по-моему, избыточно.

#220:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Dec 05, 2017 10:54
    —
Flasher wrote:
Кавычки не люблю, когда не требуются, а settext не годится, я его заменял ещё на первом этапе.

Бывают случаи, когда текстовое поле ещё не существует, когда комбобокс уже готов к бою? Very Happy

sa wrote:
Наличие в кнопке конструкции eval(select_wait(… для решения рассматриваемой задачи, по-моему, избыточно.

Но select_wait же - макрос, его в любом случае надо в eval, а так всё в один внешний eval уместилось.

#221:  Author: FlasherLocation: Москва PostPosted: Tue Dec 05, 2017 10:57
    —
sa
Ошибаешься. Если до этого выбирался другой упаковщик, то команда не сработает.
Нет, похоже дело в зависимости пункта в списке от радиокнопки. Если пункт не выбирать, то действительно всё работает.

MVV
См. обсуждение.

Так. А радиокнопка-то при select не выбирается. Ещё одну мессагу добавить придётся.


Last edited by Flasher on Tue Dec 05, 2017 11:28; edited 2 times in total

#222:  Author: sa PostPosted: Tue Dec 05, 2017 10:59
    —
MVV
Я про то , что не надо копаться в TComboBox при наличии `CopyTree:"%T"`.

Кстати, вариант с "%T" сгодится для CopyTree, но не подойдёт для 7z.

#223:  Author: FlasherLocation: Москва PostPosted: Tue Dec 05, 2017 11:28
    —
sa wrote:
Кстати, вариант с "%T" сгодится для CopyTree, но не подойдёт для 7z.
Это спецвариант под неархивируемый плагин потому что.

#224:  Author: ingerard PostPosted: Tue Dec 05, 2017 11:36
    —
Flasher
Так какой вариант лучше? Я уже вчера и модуль TCFS2Tools.dll подключил.

#225:  Author: FlasherLocation: Москва PostPosted: Tue Dec 05, 2017 11:37
    —
ingerard
Теперешний.

#226:  Author: sa PostPosted: Tue Dec 05, 2017 12:25
    —
По-моему, так работает и с TComboBox:
Code:
"tcm(508,1) eval(select_wait(`CopyTree`,findwnd(TComboBox,,findwnd(TMyGroupBox,,findwnd(TDLGZIP))))) send(`~(%%Z-)`,findwnd(TDLGZIP)) sendmsg(findwnd(TButton,,findwnd(TDLGZIP),3),$f5)"
Радиокнопку нажимал из send.

#227:  Author: FlasherLocation: Москва PostPosted: Tue Dec 05, 2017 12:47
    —
По идее радиокнопка должна нажиматься так:
Code:
sendmsg(findwnd(TRadioButton,,findwnd(TMyGroupBox,,findwnd(TDLGZIP),3),$F5))
Но почему-то не отрабатывает.

#228:  Author: sa PostPosted: Tue Dec 05, 2017 14:32
    —
Вот так, как будто:
Code:
/ef "%Z tcm(508,1) eval(select_wait(`CopyTree`,findwnd(TComboBox,,findwnd(TMyGroupBox,,findwnd(TDLGZIP))))) sendmsg(findwnd(TRadioButton,,findwnd(TMyGroupBox,,findwnd(TDLGZIP)),9),$F5) sendmsg(findwnd(TRadioButton,,findwnd(TMyGroupBox,,findwnd(TDLGZIP)),3),$F5) sendmsg(findwnd(TButton,,findwnd(TDLGZIP),3),$f5)"
Наверное, можно подсократить.

#229:  Author: ingerard PostPosted: Tue Dec 05, 2017 16:25
    —
Flasher
Нормально не работает с путями в которых встречается символ ")", например название папки "3) 12 жовтня 2016\", если в нее кидать, то появляется ошибка "Unavailable key", а потом:

Error:
Wrong expression
Expression:
@<=if_empty(,5)*20&&if(findwnd(TAltEdit,,,0,1),settext( CopyTree:"C:\3) 12 жовтня 2016\" ,findwnd(TAltEdit,,,0,1))*0,delay(50))
Terminate process?


sa
А в вашем коде кидает не по пути получателя, а по пути источника, рядом с собой. И так же не работает с символом ")".

#230:  Author: FlasherLocation: Москва PostPosted: Tue Dec 05, 2017 19:51
    —
sa wrote:
Вот так, как будто:
А, я скобку не туда воткнул..
А зачем перед этим кликать на ARJ*-радиокнопку, я не понял? Это лишнее.

ingerard
У меня так работает с наличием скобок (да и нечему там создавать для них проблемы):
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef
tcm(508,1) eval(select_wait(`CopyTree`,findwnd(TComboBox,,findwnd(TMyGroupBox,,findwnd(TDLGZIP))))) sendmsg(findwnd(TRadioButton,,findwnd(TMyGroupBox,,findwnd(TDLGZIP)),3),$F5) sendmsg(findwnd(TButton,,findwnd(TDLGZIP),3),$F5)
wcmicons.dll,1
CopyTree — выбор глубины папок для копирования|структуры выбранных объектов в другую панель
И самое главное, что в такой кнопке уже нет необходимости подбирать имя за ТС при замене CopyTree на любой другой плагин из списка.

Last edited by Flasher on Tue Dec 05, 2017 20:20; edited 1 time in total

#231:  Author: ingerard PostPosted: Tue Dec 05, 2017 20:19
    —
Flasher
Если запускать с кнопки, то копирует как надо в другую панель, но если прописать в usercmd.ini, то копирует в текущую.

Code:
[em_FastCopyTree]
cmd=%COMMANDER_PATH%\Addons\TCFS2\TCFS2.exe
param=/ef tcm(508,1) eval(select_wait(`CopyTree`,findwnd(TComboBox,,findwnd(TMyGroupBox,,findwnd(TDLGZIP))))) sendmsg(findwnd(TRadioButton,,findwnd(TMyGroupBox,,findwnd(TDLGZIP)),3),$F5) sendmsg(findwnd(TButton,,findwnd(TDLGZIP),3),)
menu=Быстрый запуск плагина CopyTree[2]

#232:  Author: FlasherLocation: Москва PostPosted: Tue Dec 05, 2017 20:32
    —
ingerard
Хм. Почему-то с хоткеем команда выбора пункта не отрабатывает. Confused
В конце параметров $F5 перед скобкой добавьте.

#233:  Author: sa PostPosted: Tue Dec 05, 2017 20:34
    —
На случай, когда ранее вызывался какой-то другой архиваторный плагин, у меня используется дополнительное нажатие радиокнопки с ZIP.

ingerard
Дело не в usercmd.ini, а в назначенных на команду клавишах. Нажатие Ctrl при выполнении команды упаковки (508) заставляет TC упаковывать в текущую панель (как при Ctrl+Alt+F5).

#234:  Author: ingerard PostPosted: Tue Dec 05, 2017 20:37
    —
Flasher
Я убрал временно $F5, чтоб смотреть что в строку подставляет скрипт Smile

Добавлено спустя 3 минуты:

sa
Точно, вот проблемы с этими горячими клавишами, и как быть?

#235:  Author: FlasherLocation: Москва PostPosted: Tue Dec 05, 2017 20:40
    —
sa wrote:
На случай, когда ранее вызывался какой-то другой архиваторный плагин
Так и что, что он вызывался? Как это меняет ситуацию, если выбор безусловный?
Ага, похоже, что меняет. Да, ZIP, забыл, что отсчёт с нуля.

Получается, у нас патовая ситуация с этим хоткеем, пока MVV это не поправит.


Last edited by Flasher on Tue Dec 05, 2017 20:57; edited 1 time in total

#236:  Author: sa PostPosted: Tue Dec 05, 2017 20:42
    —
ingerard wrote:
и как быть?

Win+F5 Smile

#237:  Author: FlasherLocation: Москва PostPosted: Tue Dec 05, 2017 20:50
    —
Придумал.
Quote:
... tcm(508,1) tcm(4006) ... tcm(4006,1)
Вторую нужно в конец:
Code:
[em_FastCopyTree]
cmd=%COMMANDER_PATH%\Addons\TCFS2\TCFS2.exe
param=/ef tcm(508,1) tcm(4006) eval(select_wait(`CopyTree`,findwnd(TComboBox,,findwnd(TMyGroupBox,,findwnd(TDLGZIP))))) sendmsg(findwnd(TRadioButton,,findwnd(TMyGroupBox,,findwnd(TDLGZIP)),0),$F5) sendmsg(findwnd(TRadioButton,,findwnd(TMyGroupBox,,findwnd(TDLGZIP)),3),$F5) sendmsg(findwnd(TButton,,findwnd(TDLGZIP),3),$F5) tcm(4006,1)
menu=Быстрый запуск плагина CopyTree[2]

#238:  Author: ingerard PostPosted: Tue Dec 05, 2017 21:13
    —
sa
Таки придется менять хоткей.

Flasher
Заработало, но теперь думаю что лучше, менять хоткей или использовать такой замудренный код Smile Посоветуйте, ничего что оно с фокусом панели играет?

#239:  Author: FlasherLocation: Москва PostPosted: Tue Dec 05, 2017 21:16
    —
ingerard
Ничего страшного нет. Этого же не видно. Но сам я предпочитаю короткие хоткеи с одним модификатором. Win — тоже вариант.

#240:  Author: sa PostPosted: Wed Dec 06, 2017 08:53
    —
ingerard wrote:
А в вашем коде кидает не по пути получателя, а по пути источника, рядом с собой. И так же не работает с символом ")".

Уточните, о каком коде говорится?

#241:  Author: ingerard PostPosted: Wed Dec 06, 2017 11:47
    —
sa
Было здесь, но уже с путями все норм, эта проблема была связана с сочетанием клавиш CTRL+SHIFT. Но появилась уже другая проблема Very Happy, я же сменил хоткей на Win+F5, а клавиша Win при зажатом состоянии внутри CopyTree обрабатывается как "показывать диалог выбора глубины копирования", и даже если я в настройках ставлю AskOptionsOnWin=0, то плагин все равно мне вываливает это окно и ставить в настройках AskOptionsOnWin=1. Наглеж Smile

#242:  Author: sa PostPosted: Wed Dec 06, 2017 11:57
    —
Quote:
И так же не работает с символом ")".

ingerard wrote:
Было здесь

Не подтверждаю.

#243:  Author: ingerard PostPosted: Wed Dec 06, 2017 12:11
    —
Quote:
Не подтверждаю.

Да, была проблема только с хоткеем. Да и ща проблема, только уже с другим.

#244:  Author: FlasherLocation: Москва PostPosted: Wed Dec 06, 2017 12:12
    —
Для этого подтверждения не требуются. Я уже писал об этом:
Flasher wrote:
У меня так работает с наличием скобок (да и нечему там создавать для них проблемы)
Нет смысла тратить на это время.

#245:  Author: sa PostPosted: Wed Dec 06, 2017 12:46
    —
ingerard wrote:
была проблема только с хоткеем.
Спасибо, утешили! Smile

ingerard wrote:
только уже с другим
Как вариант, попробуйте перед командой tcm(508,1) установить задержку delay(300) или сколько там у вас тратится времени на отжимание клавиши Win.

#246:  Author: FlasherLocation: Москва PostPosted: Wed Dec 06, 2017 12:50
    —
sa wrote:
установить задержку
С этого варианта всё и начиналось в отношении Ctrl/Shift. Был ли тогда смысл искать улучшенные варианты? Смысл в замене на Win вообще пропадает. И в таком случае вместо delay потребовалось бы это:
Code:
loop(msg($433,tt_GetAsyncKeyState,$5B)|msg($433,tt_GetAsyncKeyState,$5C))

ingerard
А опцию-то с Win снять кто мешает?

#247:  Author: ingerard PostPosted: Wed Dec 06, 2017 13:49
    —
Flasher wrote:
А опцию-то с Win снять кто мешает?


ingerard wrote:
и даже если я в настройках ставлю AskOptionsOnWin=0, то плагин все равно мне вываливает это окно и ставить в настройках AskOptionsOnWin=1


Короче поставил скрипт на клавишу Shift+F5 и все норм.

#248:  Author: sa PostPosted: Wed Dec 06, 2017 13:58
    —
ingerard wrote:
на клавишу Shift+F5

То есть лишили себя команды Копировать файлы (с переименованием) в тот же каталог?

А в варианте с задержкой, наоборот, на одной комбинации (Win+F5) был бы выбор: нажали и отпустили – просто копирование, чуть подольше нажали и отпустили – копирование с выбором глубины.

#249:  Author: FlasherLocation: Москва PostPosted: Wed Dec 06, 2017 14:06
    —
ingerard wrote:
и даже если я в настройках ставлю AskOptionsOnWin=0
Это баг плагина. MVV ?

#250:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Dec 06, 2017 14:35
    —
Я правильно понял, что конфиг правится вручную при запущенном тотале и потом вызывается диалог настроек CopyTree? Тогда вполне ожидаемо, что опция не меняется, т.к. плагин держит настройки в памяти.
Либо при закрытом тотале править, либо в окне настроек плагина убрать галочку и нажать Сохранить.
Переключаю галочку, жму Сохранить - в конфиг прописывается правильное значение.

#251:  Author: FlasherLocation: Москва PostPosted: Wed Dec 06, 2017 14:41
    —
MVV
Я отключал опцию через диалог настроек. При удержании Win диалог выбора всё равно появляется. CopyTree 1.3.0.300. TC Last x32. Win7 x32.

#252:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Dec 06, 2017 15:01
    —
Если твои настройки - на скриншоте, то тебе ещё надо убрать галочку "Показывать диалог каждый раз"...

#253:  Author: FlasherLocation: Москва PostPosted: Wed Dec 06, 2017 15:03
    —
Убирал, конечно. То умолчательные настройки.
И это происходит при использовании хоткея с Win с несвоевременным отпусканием. Если держать Win в момент нажатия кнопки, то всё в норме.

#254:  Author: ingerard PostPosted: Wed Dec 06, 2017 15:23
    —
sa wrote:
То есть лишили себя команды Копировать файлы (с переименованием) в тот же каталог?

Я эту команду назначил на CS+F5, а вариант с задержкой утомителен Smile мне нрав быстрая реакция.

MVV
Прописал в ini-файле "AskOptionsOnWin=0", перезапустил ТК и все равно при зажатии Win-клавиши показывает окошко глубины. Даже если не через скрипт, а обычным хоткеем(Аlt+F5) вызвать архивацию и потом зажать Win, то также показывает окошко.

#255:  Author: sa PostPosted: Wed Dec 06, 2017 15:54
    —
ingerard
А для копирования с выбором глубины копирования будете использовать ещё одну комбинацию? Предлагаю Win+F5. Smile

#256:  Author: ingerard PostPosted: Wed Dec 06, 2017 16:09
    —
sa
Мне глубину менять приходится редко, я прописал в настройках какая мне надо и все.

p.s. только что попробовал нажать S+F5 и сразу же Win, и окно с выбором глубины появилось, без сложностей сразу срабатывает, так что вариант с выбором есть. Very Happy

#257:  Author: sa PostPosted: Wed Dec 06, 2017 16:16
    —
ingerard wrote:
попробовал нажать S+F5 и сразу же Win

Тоже вариант!

#258:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Dec 06, 2017 18:56
    —
ingerard,
А копирование откуда делается? Если из панели результатов поиска, то диалог в любом случае будет показан, т.к. там неизвестна папка, от которой уровни отсчитывать, в отличие от копирования из плоского режима, где папка известна. В Readme об этом сказано:
Readme.txt wrote:
При копировании из панели результатов поиска (если не задан параметр DefaultCopyLevel) диалог показывается всегда, в остальных случаях - в зависимости от настроек модуля.

#259:  Author: ingerard PostPosted: Wed Dec 06, 2017 23:37
    —
MVV
Да без всяких режимов только что попробовал, отключил в настройках CopyTree окно выбора глубины через Win, вызываю архивацию через Alt+F5, зажимаю кнопку Win и окно все равно выскакивает.

#260:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Dec 07, 2017 10:57
    —
У меня ничего не выскакивает: выделяю файл в обычной панели, жму Alt+F5, жму ОК - файл молча скопирован. В настройках три верхних галки точно сняты?

#261:  Author: sa PostPosted: Thu Dec 07, 2017 11:15
    —
MVV wrote:
жму ОК

Речь о случае, когда помимо OK нажата клавиша Win. Как здесь.


Last edited by sa on Thu Dec 07, 2017 11:33; edited 1 time in total

#262:  Author: FlasherLocation: Москва PostPosted: Thu Dec 07, 2017 11:31
    —
Было бы странно, если бы он этого не знал, коли о баге в данном контексте и сообщалось.

ingerard
Вообще я изначально предполагал, что окно глубины таки требуется, иначе можно было бы сразу говорить о чём-то вроде этого:
 Hidden text


Last edited by Flasher on Thu Dec 14, 2017 14:47; edited 14 times in total

#263:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Dec 07, 2017 13:09
    —
sa wrote:
MVV wrote:
жму ОК

Речь о случае, когда помимо OK нажата клавиша Win. Как здесь.

А, блин, только сейчас понял, в чём проблема, никто толком и не объяснил, что для воспроизведения бага кнопка Win обязательна. Да, подтверждаю, что диалог показывается с Win, даже если опция отключена.

#264:  Author: FlasherLocation: Москва PostPosted: Thu Dec 07, 2017 13:13
    —
MVV wrote:
никто толком и не объяснил, что для воспроизведения бага кнопка Win обязательна
Шутишь? А я с каким ключём к тебе обратился? И далее писал:
Flasher wrote:
При удержании Win диалог выбора всё равно появляется.
+ См. самый верх предыдущей страницы.

Last edited by Flasher on Thu Dec 07, 2017 13:16; edited 1 time in total

#265:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Dec 07, 2017 13:15
    —
У тебя на скриншоте стояла галка "Показывать диалог каждый раз", я подумал, что проблема в этом.

#266:  Author: FlasherLocation: Москва PostPosted: Thu Dec 07, 2017 13:18
    —
И я на это ответил.

#267:  Author: sa PostPosted: Thu Dec 07, 2017 14:05
    —
Спорить не о чем: описание бага можно использовать как образец. Smile

#268:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Dec 07, 2017 16:01
    —
Поправил косяк с опцией, также убрал пустой элемент в списке при копировании каталога, и подкорректировал подсчёт уровней в разных случаях.

CopyTree 1.3.0.320


sa wrote:
Спорить не о чем: описание бага можно использовать как образец. Smile

По-любому! Laughing

#269:  Author: FlasherLocation: Москва PostPosted: Thu Dec 07, 2017 16:24
    —
Теперь всё ОК.
Ты бы ещё тут хоть "полслова" написал.

#270:  Author: FlasherLocation: Москва PostPosted: Fri Dec 08, 2017 16:45
    —
ingerard
С обновлением можно вернуться к короткому варианту.

#271:  Author: ingerard PostPosted: Fri Dec 08, 2017 21:45
    —
Flasher
Ок, перешел на него, все таки поменьше код.

#272:  Author: FlasherLocation: Москва PostPosted: Sat Dec 09, 2017 01:02
    —
ingerard
Хорошо. Под спойлер добавил максимальную глубину.

#273:  Author: ingerard PostPosted: Sun Dec 10, 2017 12:11
    —
Flasher
Скрипт работает, только не понял как пользоваться параметром /c, какое число не ставлю - копирует полную иерархию вплоть до буквы диска.

#274:  Author: sa PostPosted: Sun Dec 10, 2017 12:15
    —
Ещё один вариант с settext. Рекурсивный поиск окна заменён на указание родительского. Параметр %Z добавлен для копирования из архивов.
Code:
/ef "%Z tcm(508,1) eval(settext_wait(`CopyTree:"%T"`,findwnd(TAltEdit,,findwnd(TDLGZIP)))) sendmsg(findwnd(TButton,,findwnd(TDLGZIP),3),$f5)"

#275:  Author: FlasherLocation: Москва PostPosted: Sun Dec 10, 2017 13:05
    —
ingerard
А, в 25 строчке был маленький косяк. Исправил.

sa wrote:
Параметр %Z добавлен для копирования из архивов.
А смысл в сохранении подкаталогов %Теmp%? Для сохранности подкаталогов архива из режима "без подкаталогов" достаточно и обычной распаковки по F5.
Получилось шило на мыло. 6 символов убрал, 6 добавил.

#276:  Author: sa PostPosted: Sun Dec 10, 2017 14:00
    —
В отличие от распаковки по F5 (позволяющей сохранить все подкаталоги), CopyTree позволяет сделать выбор глубины подкаталогов.

#277:  Author: FlasherLocation: Москва PostPosted: Sun Dec 10, 2017 14:21
    —
Если речь про отрезание вышестоящих папок внутри архива, то тогда будут возникать проблемы при совпадении имён. И по идее должен отламываться автовыбор.

#278:  Author: ingerard PostPosted: Sun Dec 10, 2017 14:31
    —
Flasher
Можно сделать выбор глубины с другого конца? Чтоб было понятнее приведу цитату из ридми CopyTree:

Quote:
Позволяет переопределять глубину каталогов. Если >0, указывает число уровней, которые нужно скопировать (1 - первый безопасный вариант, 2 - плюс ещё один уровень, и т.д.), если <0 - число уровней от корневого каталога, которые нужно пропустить (-1 - полный путь с буквой диска, -2 - полный путь без буквы диска и т.д.).

#279:  Author: sa PostPosted: Sun Dec 10, 2017 16:21
    —
Flasher wrote:
будут возникать проблемы при совпадении имён. И по идее должен отламываться автовыбор.

Надо срочно сигнализировать о ситуации автору плагина. Пусть хотя бы в readme введёт ограничения на использование плагина в архивах. Smile

#280:  Author: FlasherLocation: Москва PostPosted: Mon Dec 11, 2017 02:12
    —
ingerard
Тогда выбор исключаемых, а не включаемых компонетов пути как сейчас. Так?
Я сперва не о том подумал. Мне казалось, что нужно из относительного пути вырезать цепочку. Это не нужно?

Ладно, сделал 3 режима.

#281:  Author: ingerard PostPosted: Mon Dec 11, 2017 12:19
    —
Flasher
Сейчас все работает как надо, но можете еще добавить /c:0 - копировать включая букву диска.

#282:  Author: FlasherLocation: Москва PostPosted: Mon Dec 11, 2017 12:29
    —
ingerard
Для в)? ОК. Упростил 35 строчку.

#283:  Author: ingerard PostPosted: Mon Dec 11, 2017 12:48
    —
Flasher
Да, для в) сойдет. Работает Smile

#284:  Author: FlasherLocation: Москва PostPosted: Mon Dec 11, 2017 12:59
    —
ingerard
Не, всё-таки по-другому сделал, а то для а) кое-что отламывается.


Last edited by Flasher on Mon Dec 11, 2017 13:05; edited 1 time in total

#285:  Author: ingerard PostPosted: Mon Dec 11, 2017 13:03
    —
Flasher
Ну буду тестировать, если что отпишусь.

#286:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Dec 11, 2017 15:57
    —
Что-то у вас тут жуткое затевается... Very Happy

ingerard wrote:
Сейчас все работает как надо, но можете еще добавить /c:0 - копировать включая букву диска.

Не лучше ли сделать консистентно с плагином, чтобы буква диска копировалась при значении -1?

#287:  Author: ingerard PostPosted: Mon Dec 11, 2017 16:33
    —
MVV
Скрипт от Флешера как альтернатива, на всякий случай, а приоритет все же на связке TCFS2 + CopyTree, так намного быстрее реакция.

#288:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Dec 11, 2017 18:28
    —
Вот в альтернативе, думается, имеет смысл сохранять смысл основных ключей...

#289:  Author: FlasherLocation: Москва PostPosted: Mon Dec 11, 2017 20:17
    —
MVV
У меня 3 режима. Исходным был а), которого у тебя не было. В случае -1 исключается одна папка из относительного пути. За негодностью двух минусов для одного ключа я компенсировал этот момент отсутствием знака для в), где задаём число на отъём слева. Т.е. при нуле отъём отсутствует.

ingerard
Мой ник попрошу писать как полагается, а не в искажённой траскрипции.
По каким критериям реакция определялась? Например, при /s:0,0000001 ?


Last edited by Flasher on Mon Dec 11, 2017 21:33; edited 1 time in total

#290:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Dec 11, 2017 20:52
    —
Quote:
Исходным был а), которого у тебя не было.

Если правильно понял описание, б) и в) - это положительные и отрицательные значения DefaultCopyLevel? А что именно делает а)?

#291:  Author: FlasherLocation: Москва PostPosted: Mon Dec 11, 2017 20:58
    —
MVV wrote:
А что именно делает а)?
Что и написано:
C:\5\4\3\2\1 << \X\Y\Z\name.ext
+1: 1\X\Y\Z\name.ext
+2: 2\1\X\Y\Z\name.ext
+3: 3\2\1\X\Y\Z\name.ext

Во всех 3-х режимах контроль идёт не по всему пути, а по пути источника или относительному пути, чтобы не зацепить лишнего. В случае DefaultCopyLevel так? По описанию не совсем ясно.

#292:  Author: ingerard PostPosted: Mon Dec 11, 2017 22:23
    —
Quote:
По каким критериям реакция определялась? Например, при /s:0,0000001 ?

Не совсем понял о чем речь, сравнивал по визуальной задержки. Через скрипт скопированная папка появляется на секунду дольше, чем через CopyTree, плюс еще большой минус в том, что не видно прогресса копирования, очень существенно при объемных файлах...

#293:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Dec 11, 2017 23:08
    —
Flasher wrote:
MVV wrote:
А что именно делает а)?
Что и написано:
C:\5\4\3\2\1 << \X\Y\Z\name.ext
+1: 1\X\Y\Z\name.ext
+2: 2\1\X\Y\Z\name.ext
+3: 3\2\1\X\Y\Z\name.ext

Не пойму, куда потом идёт такой симбиоз двух путей (источника и получателя), и почему недостаточно только регулировки числа копируемуых уровней источника.

Flasher wrote:
Во всех 3-х режимах контроль идёт не по всему пути, а по пути источника или относительному пути, чтобы не зацепить лишнего. В случае DefaultCopyLevel так? По описанию не совсем ясно.

Если DefaultCopyLevel не задан или положителен, он задаёт число дополнительных верхних уровней для копирования относительно базового (в случае плоского режима) или первого безопасного (из результатов поиска) варианта:
C:\Target << Z\name.ext
0: C:\Target\Z\name.ext
1: C:\Target\Y\Z\name.ext
А если DefaultCopyLevel отрицателен, он задаёт число пропускаемых уровней от корня:
C:\Target << D:\X\Y\Z\name.ext
-1: C:\Target\D\X\Y\Z\name.ext
-2: C:\Target\X\Y\Z\name.ext

#294:  Author: FlasherLocation: Москва PostPosted: Tue Dec 12, 2017 01:49
    —
ingerard wrote:
Не совсем понял о чем речь, сравнивал по визуальной задержки.
Я же привёл значения для ключа, чтобы сверить.
ingerard wrote:
Через скрипт скопированная папка появляется на секунду дольше, чем через CopyTree
И как вы это определили? То, что ТС не успевает обновлять панель, не значит, что папка не скопировалась.
ingerard wrote:
плюс еще большой минус в том, что не видно прогресса копирования, очень существенно при объемных файлах.
Не спорю. С другой стороны прогресс съедает скорость. Мне оповещения хватает. Множественный прогресс делать не хочу, а общий, если брать средства из коробки, будет не так чисто всплывать.

Зато нет никаких мельканий и есть автопереименование для совпавших по имени файлов. Smile


MVV wrote:
Не пойму, куда потом идёт такой симбиоз двух путей (источника и получателя)
В указанный получатель. Там же в параметрах написано. И откуда здесь симбиоз? Это путь источника и относительный к объекту. Тут нет получателя.
MVV wrote:
и почему недостаточно только регулировки числа копируемуых уровней источника.
В каком смысле "недостаточно"? В двух режимах этот контроль и осуществляется. В б) контролируется относительный путь.

MVV wrote:
1: C:\Target\Y\Z\name.ext
Откуда папка Y взялась? См. как у меня.
MVV wrote:
А если DefaultCopyLevel отрицателен, он задаёт число пропускаемых уровней от корня:
Это не отвечает на мой вопрос. Где тут общий для DirBranch каталог-источник? Что будет при -4, -5, -6?

#295:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Dec 12, 2017 11:21
    —
Flasher wrote:
В указанный получатель. Там же в параметрах написано. И откуда здесь симбиоз? Это путь источника и относительный к объекту. Тут нет получателя.

CopyTree копирует файлы из папки-источника в папку-получатель с сохранением структуры. Относительным путём к копируемому объекту является его путь относительно базовой папки, которая по умолчанию является папкой, в которой юзер нажал Ctrl+B, и которая может быть изменена пользователем или опцией DefaultCopyLevel.

Flasher wrote:
Это не отвечает на мой вопрос. Где тут общий для DirBranch каталог-источник? Что будет при -4, -5, -6?

Твой пример я вообще не понял, ты копируешь файл \X\Y\Z\name.ext в папку C:\5\4\3\2\1, но зачем-то потом используются пути относительно папки C:\5\4\3\2\1 - куда они дальше идут, непонятно...
Однако я просто показал, что делает опция DefaultCopyLevel: положительные значения увеличивают число дублируемых уровней (понижают выбранный по умолчанию пункт в диалоге выбора глубины), отрицательные задают абсолютное значение числа уровней до базовой папки (фактически, задают номер выбранного пункта в диалоге, начиная с конца). При -4 базовым путём будет D:\A\B\C, при слишком большом - максимально возможное (хотя, тут возможно имеет смысл показывать диалог).

Flasher wrote:
В каком смысле "недостаточно"? В двух режимах этот контроль и осуществляется. В б) контролируется относительный путь.

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

Flasher wrote:
Откуда папка Y взялась? См. как у меня.

У тебя папка Y является надпапкой Z, я и показал, что будет, если мы копируем файл из Z при различных значениях параметра (разве что явно не сказал, что текущая папка Z).

#296:  Author: FlasherLocation: Москва PostPosted: Tue Dec 12, 2017 11:46
    —
MVV wrote:
CopyTree копирует файлы ...
Я это прекрасно знаю. Как это относится к приведённой цитате?

MVV wrote:
Твой пример я вообще не понял, ты копируешь файл \X\Y\Z\name.ext в папку C:\5\4\3\2\1
См. внимательно, что я пишу:
Flasher wrote:
Это путь источника и относительный к объекту. Тут нет получателя.
Получатель указывается 3-м параметром, посмотри описание параметров хоть.

MVV wrote:
отрицательные задают абсолютное значение числа уровней до базовой папки
Вот. Я это и хотел увидеть. Т.е. от относительно папки не отнимаются? Но ведь в диалоге такой выбор есть. Question

MVV wrote:
При -4 базовым путём будет D:\A\B\C, при слишком большом - максимально возможное (хотя, тут возможно имеет смысл показывать диалог).
Давай по-другому. Базовый путь - D:\X (ты писал "C:\Target << D:\X\Y\Z\name.ext"). Так что будет при -3, -4, -5?

MVV wrote:
У тебя папка Y является надпапкой Z
У тебя-то её нет:
MVV wrote:
C:\Target << Z\name.ext

#297:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Dec 12, 2017 12:58
    —
Flasher wrote:
Вот. Я это и хотел увидеть. Т.е. от относительно папки не отнимаются? Но ведь в диалоге такой выбор есть. Question

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

Flasher wrote:
Я это прекрасно знаю. Как это относится к приведённой цитате?

Это было объяснение терминов издалека.

Flasher wrote:
Давай по-другому. Базовый путь - D:\X (ты писал "C:\Target << D:\X\Y\Z\name.ext"). Так что будет при -3, -4, -5?

При -3 будет D:\X\Y, если все выделенные файлы находятся внутри этой папки, в противном случае будет выбрана менее глубокая базовая папка (D:\X, или вообще D:\, если в списке копируемых файлов есть, скажем, файлы D:\A1\file1.txt и D:\A2\file2.txt). Тут вообще вопрос, каким должно быть поведение плагина в такой ситуации.

Flasher wrote:
У тебя-то её нет:

Я на примере твоей структуры, где папка Z лежит в папке ...\X\Y, рассмотрел ситуацию копирования в случае, когда мы нажали Ctrl+B в папке Y.

Flasher wrote:
См. внимательно, что я пишу:
Flasher wrote:
Получатель указывается 3-м параметром, посмотри описание параметров хоть.

Это по-прежнему не объясняет, зачем от пути получателя отщеплять уровни. Или у тебя в примере C:\5\4\3\2\1 - это начало пути источника, а ёлочки означают вовсе не направление копирования файла? Поясни тогда, как будут вести себя три режима в случае, когда мы копируем файл D:\A\B\C\X\Y\Z\file.txt в папку C:\Target, если Ctrl+B мы нажали в папке D:\A\B\C.

#298:  Author: FlasherLocation: Москва PostPosted: Tue Dec 12, 2017 13:26
    —
MVV wrote:
но не вижу в этом особого смысла
Зачем тогда добавлял?

MVV wrote:
При -3 будет D:\X\Y, если все выделенные файлы находятся внутри этой папки
Не понимаю. Я спрашиваю про результат копирования. Получатель у тебя C:\Target. База — D:\X. При чём тут D:\X\Y?

MVV wrote:
Я на примере твоей структуры, ... когда мы нажали Ctrl+B в папке Y.
Вообще-то в моём случае это было в папке C:\5\4\3\2\1.

MVV wrote:
Это по-прежнему не объясняет, зачем от пути получателя отщеплять уровни.
Я тебе в очередной раз пишу, что в примере нет получателя, а ты опять пишешь, что я от него что-то отщепляю.

MVV wrote:
Или у тебя в примере C:\5\4\3\2\1 - это начало пути источника, а ёлочки означают вовсе не направление копирования файла?
Именно. Стрелки показывают, с какой стороны прибавляются папки.

MVV wrote:
Поясни тогда, как будут вести себя три режима в случае, когда мы копируем файл D:\A\B\C\X\Y\Z\file.txt в папку C:\Target, если Ctrl+B мы нажали в папке D:\A\B\C.
Code:
а)    +1:  C:\Target\C\X\Y\Z\file.txt
а) +4|+9:  C:\Target\D\A\B\C\X\Y\Z\file.txt
б)    -1:  C:\Target\Y\Z\file.txt
б) -3|-9:  C:\Target\file.txt
в)     1:  C:\Target\А\B\C\X\Y\Z\file.txt
в)   4|9:  C:\Target\X\Y\Z\file.txt
Можешь дать аналогичный пример?

#299:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Dec 12, 2017 14:10
    —
Quote:
Не понимаю. Я спрашиваю про результат копирования. Получатель у тебя C:\Target. База — D:\X. При чём тут D:\X\Y?

При том, что параметр задаёт новую базу. Вспомни старый плагин TreeCopyPlus, у него был только 1 параметр - число уровней от корня до базы, то же самое здесь достигается отрицательными значениями DefaultCopyLevel.

Quote:
Зачем тогда добавлял?

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

Quote:
Можешь дать аналогичный пример?

ОК, для различных DefaultCopyLevel:
Code:
   1:  C:\Target\C\X\Y\Z\file.txt
≥  4:  C:\Target\D\A\B\C\X\Y\Z\file.txt
  -1:  C:\Target\D\A\B\C\X\Y\Z\file.txt
  -2:  C:\Target\A\B\C\X\Y\Z\file.txt
≤ -8:  C:\Target\file.txt

#300:  Author: FlasherLocation: Москва PostPosted: Tue Dec 12, 2017 14:46
    —
MVV wrote:
При том, что параметр задаёт новую базу.
Я то писал не про базу, а про результат добавления.
MVV wrote:
Может, кто-то захочет себе в ногу выстрелить
Я поэтому и колебался, делать б) или нет. А ты пишешь, что у тебя в ini его и нет.

Code:
  -1:  C:\Target\D\A\B\C\X\Y\Z\file.txt
  -2:  C:\Target\A\B\C\X\Y\Z\file.txt
Тут логика где-то зависает. Вроде надо 1/2 папки убрать, а убирается 0/1.
Code:
≤ -8:  C:\Target\file.txt
Вот. А пишешь:
MVV wrote:
отрицательные задают абсолютное значение числа уровней до базовой папки
число уровней от корня до базы
Так не до, а совместно. Меня как раз такой вариант не устраивает. "До" как раз у меня.

#301:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Dec 12, 2017 16:44
    —
Quote:
Тут логика где-то зависает. Вроде надо 1/2 папки убрать, а убирается 0/1.

Отсчёт начинается с -1, а не с 0, и в Readme об этом сказано: -1 - полный путь с буквой диска, -2 - полный путь без буквы диска и т.д.

Quote:
Так не до, а совместно. Меня как раз такой вариант не устраивает. "До" как раз у меня.

Учет или не учет базовой папки при подсчете числа уровней до неё - это уже совсем мелочи...

Я вообще не сильно уверен, что много кто использует DefaultCopyLevel, особенно отрицательные значения (это как-то совсем странно - прописывать единое значение для копирования во всех случаях).

#302:  Author: FlasherLocation: Москва PostPosted: Tue Dec 12, 2017 17:00
    —
MVV wrote:
Отсчёт начинается с -1, а не с 0, и в Readme об этом сказано:
Я про саму логику, а не ридми. Отсчёт с -1 мне неясен.
MVV wrote:
Учет или не учет базовой папки при подсчете числа уровней до неё - это уже совсем мелочи...
Категорически не согласен. Я не хочу отрезать ничего от относительного пути при превышении значения. Поэтому и писал "чтобы не зацепить лишнего".
MVV wrote:
Я вообще не сильно уверен, что много кто использует DefaultCopyLevel, особенно отрицательные значения
Да, но как раз с этим случаем мы столкнулись на примере автокликера.

#303:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Dec 12, 2017 19:10
    —
Quote:
Категорически не согласен. Я не хочу отрезать ничего от относительного пути при превышении значения. Поэтому и писал "чтобы не зацепить лишнего".

Погоди, я лишь имел в виду, что начинать с 0 или с 1 - дело вкуса, не имеющее отношения к "зацепить лишнего". Лишнего и у меня не захватишь.

Quote:
Я про саму логику, а не ридми. Отсчёт с -1 мне неясен.

Логика проста: 0 - по умолчанию (как вообще без параметра), положительные от 1 - прибавка к числу захватываемых уровней, отрицательные от -1 - отсчет уровней от корня.

#304:  Author: FlasherLocation: Москва PostPosted: Tue Dec 12, 2017 19:48
    —
MVV wrote:
Лишнего и у меня не захватишь.
Ну, как же? У меня:
Code:
≥  4:  C:\Target\X\Y\Z\file.txt
У тебя:
Code:
≤ -8:  C:\Target\file.txt

MVV wrote:
отрицательные от -1 - отсчет уровней от корня
Так у тебя при -1 нет захвата буквы диска, в том-то и дело. Или, по-твоему, буква — это не корень?

#305:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Dec 12, 2017 21:22
    —
Quote:
У тебя:

Это в случае копирования одного файла через ж... Тогда допускается уровень базовой папки выше, чем папки, где нажали Ctrl+B. Лишнего тут и не захватить, ровно то, что было выделено. Или что именно ты лишним называешь?)

Quote:
Так у тебя при -1 нет захвата буквы диска, в том-то и дело. Или, по-твоему, буква — это не корень?

Погодите-ка, есть захват буквы при -1!

#306:  Author: FlasherLocation: Москва PostPosted: Wed Dec 13, 2017 01:41
    —
MVV wrote:
Лишнего тут и не захватить, ровно то, что было выделено.
Умолчательное значение в разных ситуациях будет цеплять папки из относительного пути, если диалог не показывать. Это плохо.
MVV wrote:
Или что именно ты лишним называешь?)
Папки относительного пути. По примерам же видно.
MVV wrote:
Погодите-ка, есть захват буквы при -1!
Под захватом имел в виду исключение. В примере у тебя его нет:
Code:
  -1:  C:\Target\D\A\B\C\X\Y\Z\file.txt

#307:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Dec 13, 2017 10:50
    —
Quote:
Умолчательное значение в разных ситуациях будет цеплять папки из относительного пути, если диалог не показывать. Это плохо.

Если человек того хочет, так тому и быть. И потом, базовую папку не всегда можно получить от тотала - при копировании из результатов поиска её нет, как там определять лимит?

Quote:
Под захватом имел в виду исключение. В примере у тебя его нет:

Исключение - в смысле, не захват? Тогда укажи -2, чтобы было без буквы диска, а -1 в CopyTree - это опция для копирования с буквой.

#308:  Author: FlasherLocation: Москва PostPosted: Wed Dec 13, 2017 11:25
    —
MVV wrote:
Если человек того хочет, так тому и быть.
Чего хочет и как "так"? Если мне надо убирать папки из относительного пути, то я в скрипте и задаю конкретное число, но убирать их по случайности в неизвестном количестве по достижению этого пути от корня желания нет никакого.
MVV wrote:
при копировании из результатов поиска её нет, как там определять лимит?
Да. Из результатов поиска мы не получим конкретную базовую папку. Поиск может выходить за рамки одного источника. И посему отрезание единого числа компонентов в совершенно разных по глубине путях с практической точки зрения лишено всякого смысла. Я оттуда и не пользовался плагином.
MVV wrote:
а -1 в CopyTree - это опция для копирования с буквой.
Я понимаю. Но я не вижу в этом логики. -1 — отнимаем один, а никак не оставляем. Это одна из причин, почему я не привёл ключ к единообразию с твоим. Или ты забыл, с чего начал?

#309:  Author: ingerard PostPosted: Wed Dec 13, 2017 15:57
    —
Flasher
Quote:
Не спорю. С другой стороны прогресс съедает скорость. Мне оповещения хватает.

Так оказывает есть оповещение? У меня его нет Smile Почему?

#310:  Author: FlasherLocation: Москва PostPosted: Wed Dec 13, 2017 16:04
    —
ingerard
П. 3) снизу.

#311:  Author: ingerard PostPosted: Wed Dec 13, 2017 16:12
    —
Flasher
Code:
[em_sc_FastCopyTree]
cmd=%COMMANDER_PATH%\Addons\TCScript\wscript.exe %COMMANDER_PATH%\Scripts\CopyTree.vbs
param=%WL "%P" "%T" copy /c:0


И еще вопрос к CopyTree + TCFS2:
Как сделать такую кнопку на панели, чтоб в зависимости от ее состояния Нажата/Отжата, срабатывало условие в TCFS2, которое будет задействовать пункт в окне упаковки - "Удалить исходные файлы после упаковки", то есть не копирования, а перемещение файлов.

Пока что есть просто отдельный вариант с нажатием соответственного пункта:
Code:
[em_FastCopyTree]
cmd=%COMMANDER_PATH%\Addons\TCFS2\TCFS2.exe
param=/ef tcm(508,1) eval(settext_wait(`CopyTree:"%T"`,findwnd(TAltEdit,,findwnd(TDLGZIP)))) sendmsg(findwnd(TCheckBox,,findwnd(TDLGZIP),4),$f5) sendmsg(findwnd(TButton,,findwnd(TDLGZIP),3),$f5)
menu=Быстрый запуск плагина CopyTree

#312:  Author: FlasherLocation: Москва PostPosted: Wed Dec 13, 2017 16:35
    —
ingerard wrote:
[em_sc_FastCopyTree]
cmd=%COMMANDER_PATH%\Scripts\CopyTree.vbs
param=%WL "%P" "%T" copy /c:0 /s:0,0000001
Я же писал:
Flasher wrote:
Например, при /s:0,0000001 ?
Но это для сверки. А так логично использовать значительное число секунд: ≥ 10, чтобы окно лишний раз не маячило на маленьких размерах.
P.S.: C шапкой скрипта всегда стоит внимательно знакомиться.

ingerard wrote:
чтоб в зависимости от ее состояния Нажата/Отжата
Так в левом блоке только 2 верхние опции сохраняются, остальные всегда отключены.

#313:  Author: ingerard PostPosted: Wed Dec 13, 2017 17:34
    —
Flasher
С сообщением разобрался, и с кодировкой файла была проблема.

Quote:
Так в левом блоке только 2 верхние опции сохраняются, остальные всегда отключены.

Кнопка на главной панели.

#314:  Author: FlasherLocation: Москва PostPosted: Wed Dec 13, 2017 17:48
    —
ingerard wrote:
и с кодировкой файла была проблема
Notepad++? Wink
ingerard wrote:
Кнопка на главной панели.
Мм.. Это объявление о положительном исходе?

#315:  Author: ingerard PostPosted: Wed Dec 13, 2017 18:11
    —
Flasher wrote:
Notepad++? Wink

ага Smile

Flasher wrote:
Мм.. Это объявление о положительном исходе?

Наверно мы не поняли друг-друга. Я все таки сделал вторую горячую клавишу для перемещения файлов через CopyTree. А хотел чтоб была одна горячая клавиша, но в зависимости от какого нибудь быстрого переключателя, то ли кнопка на панели, то ли где-то в меню, переключалось копирование/перемещение.

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

#316:  Author: FlasherLocation: Москва PostPosted: Wed Dec 13, 2017 18:38
    —
ingerard wrote:
А хотел чтоб была одна горячая клавиша, но в зависимости от какого нибудь быстрого переключателя ... переключалось копирование/перемещение
Или я опять не понял, или это что-то из области искусственного интеллекта. Shocked
ingerard wrote:
Похоже что баг проявляется с папками на которых установлен другой значок(изображение на папке).
Тогда это не баг. Изображение подразумевает наличие в папке скрытого desktop.ini.

#317:  Author: ingerard PostPosted: Wed Dec 13, 2017 21:44
    —
Flasher wrote:
Или я опять не понял, или это что-то из области искусственного интеллекта. Shocked

Уже не надо, два хоткея все же удобнее. Smile

Flasher wrote:
Тогда это не баг. Изображение подразумевает наличие в папке скрытого desktop.ini.

Так desktop.ini тоже перемещает, папка пустая, но все равно не удаляет. Не удаляет после изменений иконки, даже если ее предварительно полностью почистить.

p.s
Не работает перемещение через скрипт, выдает ошибку:
Разрешение отклонено, line 0, char 1

Code:
[em_sc_FastCopyTree]
cmd=%COMMANDER_PATH%\Addons\TCScript\wscript.exe %COMMANDER_PATH%\Scripts\CopyTree.vbs
param=%WL "%P" "%T" move /s:2 /c:0

#318:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Dec 14, 2017 00:16
    —
ingerard wrote:
Так desktop.ini тоже перемещает, папка пустая, но все равно не удаляет. Не удаляет после изменений иконки, даже если ее предварительно полностью почистить.

Там проблема в атрибуте "только чтение", добавлю его снятие при удалении папки.

Flasher wrote:
Если мне надо убирать папки из относительного пути, то я в скрипте и задаю конкретное число, но убирать их по случайности в неизвестном количестве по достижению этого пути от корня желания нет никакого.

Не думаю, что автоматика может решить за человека, как лучше сделать, если тот задаёт дефолт на все случаи жизни и хочет подавлять диалог, не смотря ни на что.

Flasher wrote:
Поиск может выходить за рамки одного источника. И посему отрезание единого числа компонентов в совершенно разных по глубине путях с практической точки зрения лишено всякого смысла. Я оттуда и не пользовался плагином.

Я тоже эту опцию нахожу бесполезной, но кому-то она понадобилась, потому и включил.

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

CopyTree 1.3.0.322

Исправил удаление каталогов с атрибутом "только чтение".

#319:  Author: FlasherLocation: Москва PostPosted: Thu Dec 14, 2017 01:22
    —
ingerard wrote:
Разрешение отклонено, line 0, char 1
При разных дисках - да. Исправил. Также добавил ключ /d для удаления опустевших папок.
А зачем опять подставлять путь к переносному wscript? Разве если такое условие в шапке (см. п. 8 памятки)? Нет.

MVV wrote:
Не думаю, что автоматика может решить за человека, как лучше сделать
Почему же? Ему банально нужно не исключать папки из относительного пути, но обязательно убрать не более n-ого количества слева только в пути источника.
MVV wrote:
Я тоже эту опцию нахожу бесполезной
Ясно.

#320:  Author: sa PostPosted: Thu Dec 14, 2017 09:35
    —
MVV wrote:
Я тоже эту опцию нахожу бесполезной

Это мнение о ключе DefaultCopyLevel в целом, каком-то диапазоне его значений или о чём-то ином?

#321:  Author: ingerard PostPosted: Thu Dec 14, 2017 10:42
    —
Flasher wrote:
При разных дисках - да. Исправил. Также добавил ключ /d для удаления опустевших папок.

Теперь перемещает, но выдает ошибку с параметром /d - "Путь не найден. Строка 68, символ 12". А удаление пустых папок происходит и без него.

Flasher wrote:
А зачем опять подставлять путь к переносному wscript?

Я использую wscript ранней версии, моя текущая версия в системе не работает почему-то.
Вот такой набор с собой ношу, на всякий случай:
vbscript.dll
wscript.exe
wscript5.8.7600.16385.exe
wscript5.8.7601.18283.exe


MVV wrote:
Исправил удаление каталогов с атрибутом "только чтение".

Работает, спасибо.

#322:  Author: FlasherLocation: Москва PostPosted: Thu Dec 14, 2017 11:20
    —
sa wrote:
или о чём-то ином?
Почитать обсуждение с приведёнием цитат, где говорится конкретно о результатах поиска, не судьба?


ingerard wrote:
но выдает ошибку с параметром /d - "Путь не найден. Строка 68, символ 12".
Это весьма странно. А если в ней : на перевод строки заменить?
ingerard wrote:
А удаление пустых папок происходит и без него.
Точно? Если в 30 строку вставить
Code:
MsgBox D : WSH.Quit
, что покажет?
ingerard wrote:
моя текущая версия в системе не работает почему-то.
Идём сюда.

#323:  Author: ingerard PostPosted: Thu Dec 14, 2017 11:47
    —
Flasher wrote:
Это весьма странно. А если в ней : на перевод строки заменить?

Заменил на перевод строки, не помогло.

Flasher wrote:
Точно? Если в 30 строку вставить

Пишет "Истина".

#324:  Author: FlasherLocation: Москва PostPosted: Thu Dec 14, 2017 11:59
    —
ingerard wrote:
Заменил на перевод строки, не помогло.
На 69 строку жалуется? Не понимаю. Это на любой папке любого диска так происходит?
ingerard wrote:
Пишет "Истина".
Shocked Так точно нет /d ?

#325:  Author: ingerard PostPosted: Thu Dec 14, 2017 12:17
    —
Flasher wrote:
На 69 строку жалуется?

Да, указывает на 69 строку 3 символ, после замены ":" на перевод строки.

Flasher wrote:
Так точно нет /d ?

Забыл убрать "/d" Smile Без него показыват "Ложь".

И еще не срабатывает копирование/перемещение если пути в обеих панелях одинаковые, например открыты слева и справа диски "C:\".

#326:  Author: FlasherLocation: Москва PostPosted: Thu Dec 14, 2017 12:22
    —
ingerard wrote:
Без него показыват "Ложь".
Что и требовалось доказать. Значит, данное утверждение не есть правда:
ingerard wrote:
удаление пустых папок происходит и без него

ingerard wrote:
И еще не срабатывает копирование/перемещение если пути в обеих панелях одинаковые
В 32 строке Int(C) = 0 на C = "" поменять.

Так что по другим папкам?

#327:  Author: ingerard PostPosted: Thu Dec 14, 2017 13:15
    —
Flasher wrote:
В 32 строке Int(C) = 0 на C = "" поменять.

Теперь с одинаковыми путями работает.

Параметр "copy" так же должен работать и с "/d"? Просто зачем тогда "move"?

Что я делаю:
Копирую папку "C:\qweqw - копия\" на "D:\"
С параметрами "%WL "%P" "%T" copy /s:2 /c:0 /d"
Результат: Перемещает полностью.

Перемещаю папку "C:\qweqw - копия\" на "D:\"
С параметрами "%WL "%P" "%T" move /s:2 /c:0 /d"
Результат: Перемещает полностью и выдает ошибку "Путь не найден. Строка 69, символ 3".

Перемещаю папку "C:\qweqw - копия\" на "D:\"
С параметрами "%WL "%P" "%T" move /s:2 /c:0"
Результат: Перемещает полностью. Отработало нормально.

#328:  Author: FlasherLocation: Москва PostPosted: Thu Dec 14, 2017 13:50
    —
ingerard wrote:
Параметр "copy" так же должен работать и с "/d"?
Нет. Кое-что не учёл. См. как сейчас.

#329:  Author: ingerard PostPosted: Thu Dec 14, 2017 14:12
    —
Flasher wrote:
Нет. Кое-что не учёл. См. как сейчас.

ну с параметром "/d" все так же ошибку выдает, хоть и перемещает норм.

#330:  Author: FlasherLocation: Москва PostPosted: Thu Dec 14, 2017 14:47
    —
ingerard wrote:
хоть и перемещает норм.
Ключ /d не для перемещения.
Ошибку убрал.

#331:  Author: ingerard PostPosted: Thu Dec 14, 2017 14:56
    —
Flasher
Пока что все нормально работает.

#332:  Author: sa PostPosted: Fri Dec 15, 2017 09:28
    —
Flasher wrote:
Почитать обсуждение с приведёнием цитат, где говорится конкретно о результатах поиска, не судьба?
Судьба почитать пост по ссылке, указанной здесь:
MVV wrote:
Я тоже эту опцию нахожу бесполезной, но кому-то она понадобилась, потому и включил.
Там нет ни слова о результатах поиска.

Полагаешь, речь шла об использовании плагина в результатах поиска в принципе, применении ключа DefaultCopyLevel в результатах поиска или о чём-то ином?

#333:  Author: FlasherLocation: Москва PostPosted: Fri Dec 15, 2017 09:40
    —
Я понятия не имею, почему он привёл эту ссылку, но с приведением цитаты из поста с моим комментарием, где написано
Quote:
Из результатов поиска мы не получим конкретную базовую папку. Поиск может выходить за рамки одного источника. И посему отрезание единого числа компонентов в совершенно разных по глубине путях с практической точки зрения лишено всякого смысла. Я оттуда и не пользовался плагином.
, был дан ответ:
MVV wrote:
Я тоже эту опцию нахожу бесполезной
Откуда несложно сделать вывод, что речь о
sa wrote:
применении ключа DefaultCopyLevel в результатах поиска


Last edited by Flasher on Fri Dec 15, 2017 10:17; edited 2 times in total

#334:  Author: sa PostPosted: Fri Dec 15, 2017 09:57
    —
Flasher wrote:
Я оттуда и не пользовался плагином.

А у тебя речь о том же (о бесполезности применения ключа DefaultCopyLevel в результатах поиска) или о нецелесообразности использования плагина в результатах поиска в принципе?

#335:  Author: FlasherLocation: Москва PostPosted: Fri Dec 15, 2017 10:14
    —
Одно не исключает другое. Но с выводом диалога это можно хотя бы контролировать, поэтому предыдущее (до цитаты) предложение касалось больше ключа.

#336:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Dec 15, 2017 11:29
    —
Flasher wrote:
Откуда несложно сделать вывод, что речь о
sa wrote:
применении ключа DefaultCopyLevel в результатах поиска

Не совсем понятный вывод, если учесть, что в моём посте ни слова о результатах поиска ни в моих, ни в процитированных строках.

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

#337:  Author: FlasherLocation: Москва PostPosted: Fri Dec 15, 2017 11:52
    —
MVV wrote:
Не совсем понятный вывод, если учесть, что в моём посте ни слова о результатах поиска ни в моих, ни в процитированных строках.
Вот вся приведённая тобой цитата:
Flasher wrote:
Поиск может выходить за рамки одного источника. И посему отрезание единого числа компонентов в совершенно разных по глубине путях с практической точки зрения лишено всякого смысла. Я оттуда и не пользовался плагином.
Ты здесь видишь, что тут говорится о чём-то кроме результатов поиска? Или ты просто решил согласиться ("Я тоже ...") с тем, о чём я не писал и даже не думал писать?

MVV wrote:
Опцию я нахожу бесполезной в принципе, т.к. считаю, что тихое применение
Если речь об отображении диалога, то там у тебя целых 3 чекбокса. Что тут называть опцией?

MVV wrote:
при копировании без диалога необходимо держать в уме множество факторов (эту настройку, набор выделенных файлов, текущую папку).
Настройку можно регулировать ini-функцией. Остальное зависит от задач пользователя. Минусовка у тебя, как я уже писал, проблемы в режимах с единой базой и создаёт. Если бы сделал как я, то обошёл бы их. Про результаты поиска я писал. С диалогом в голове тоже нужно держать факт поиска в одной папке.

#338:  Author: sa PostPosted: Fri Dec 15, 2017 12:54
    —
MVV wrote:
Опцию я нахожу бесполезной в принципе
Наверное, поэтому не включил задание значения DefaultCopyLevel в диалоге настройки параметров плагина.
MVV wrote:
Главной фишкой плагина я считаю наглядность и простоту корректировки результата
Так ведь, задание DefaultCopyLevel, в том числе, влияет на номер предлагаемого варианта при показе диалога выбора глубины, тем самым облегчая его установку.

#339:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Dec 16, 2017 16:44
    —
Flasher wrote:
Вот вся приведённая тобой цитата:

Нет желания переливать из пустого в порожнее. Всё, что я хотел сказать, я сказал.

Quote:
Если бы сделал как я, то обошёл бы их.

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

Quote:
С диалогом в голове тоже нужно держать факт поиска в одной папке.

С диалогом ты при копировании явно видишь результат до подтверждения.

sa wrote:
Наверное, поэтому не включил задание значения DefaultCopyLevel в диалоге настройки параметров плагина.

Да.

Quote:
Так ведь, задание DefaultCopyLevel, в том числе, влияет на номер предлагаемого варианта при показе диалога выбора глубины, тем самым облегчая его установку.

Если не выключать отображение диалога - то да.

#340:  Author: FlasherLocation: Москва PostPosted: Sat Dec 16, 2017 17:18
    —
MVV wrote:
Нет желания переливать из пустого в порожнее.
А тут уже и переливать нечего. Всё наглядно.
MVV wrote:
твой вариант тоже не идеален.
Идеал — эфимерное понятие. Важно, что мой вариант оптимален в части юзабильности и безопасен по сути.
MVV wrote:
Впрочем, мне не трудно в случае знания текущей папки ограничиться ею и не спускаться глубже...
Разговор шёл только о тихом режиме. Держать в голове заданное число уровней и постоянно сопоставлять его с числом в исходном каталоге, может, для кого-то и нетрудно, но всегда крайне накладно по времени...
MVV wrote:
С диалогом ты при копировании явно видишь результат до подтверждения.
В случае поиска в разных папках? Нет.

#341:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Dec 16, 2017 19:00
    —
Quote:
Идеал — эфимерное понятие. Важно, что мой вариант оптимален в части юзабильности и безопасен по сути.

Идеал, оптимальность, юзабильность - суть субъективные понятия. Smile

Quote:
В случае поиска в разных папках? Нет.

Если у папок есть общая папка, по умолчанию будет предложена она, иначе - вариант с буквой диска. И в списке предлагаемых вариантов это будет видно.

#342:  Author: FlasherLocation: Москва PostPosted: Sat Dec 16, 2017 19:23
    —
MVV wrote:
Идеал, оптимальность, юзабильность - суть субъективные понятия.
У идеала нет границ, в то время как оптимальность и юзабильность всегда утыкаются в рамки поставленных задач. Правильнее было написать "более оптимален ...".
MVV wrote:
Если у папок есть общая папка
Речь как раз о разных общих папках, а не о тех, что попадаются на разной глубине.
MVV wrote:
И в списке предлагаемых вариантов это будет видно.
Так это и не результат. Это только предложение, которое может оказаться негодным.

#343:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Dec 16, 2017 20:01
    —
Quote:
Так это и не результат. Это только предложение, которое может оказаться негодным.

Это предпросмотр результата, да. У тебя есть идеи по его улучшению? Cool

#344:  Author: FlasherLocation: Москва PostPosted: Sat Dec 16, 2017 20:06
    —
В случае РП это лишь схематичный выбор глубины, а не предпросмотр результата.
Предложение по улучшению, о котором ты наверняка догадываешься, может быть только одно, но т. к. оно существенно замедлит процесс, добавлять ты его вряд ли станешь.
Но, так уж и быть, я сформулирую некое подобие: если после первой строки в списке находим ^[^ПЕРВАЯ БУКВА СПИСКА], то выводим предупреждающее окно безопасности.
Ещё точней искать по общей папке: (?<!Путь источника)

#345:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Dec 16, 2017 21:18
    —
Я правильно понял, что ты предлагаешь проверять, что все выбранные пути начинаются с одной буквы диска? Или проверять, что все пути начинаются с некоторого "пути источника"? Во втором случае вопрос, что есть "путь источника", т.к. при упаковке из результатов поиска такого пути не передается.

#346:  Author: FlasherLocation: Москва PostPosted: Sat Dec 16, 2017 21:55
    —
Да. Да. Путь в результатах только на убыль можно искать. Как попадается нестыковка, прерываем.
Например:
C:\Folder\Folder1\Folder2\Name.txt
C:\Folder\Name.txt
C:\NewFolder\Name.txt — прервано.

#347:  Author: MVVLocation: Ростов-Дон PostPosted: Sun Dec 17, 2017 00:37
    —
Прерываем? А если я хочу скопировать с буквой диска? И в твоём примере второй файл тоже может потребовать прерывания, всё зависит от того, сколько уровней мы хотим пропустить.

#348:  Author: FlasherLocation: Москва PostPosted: Sun Dec 17, 2017 00:49
    —
Число уровней выбрано. Берётся родитель с этим числом. Если он в списке теряется, то выкидывается окно.

Last edited by Flasher on Sun Dec 17, 2017 05:11; edited 1 time in total

#349:  Author: MVVLocation: Ростов-Дон PostPosted: Sun Dec 17, 2017 01:13
    —
Ты предлагаешь перед копированием при отрицательном DefaultCopyLevel сначала проверять, что у всех выбранных элементов есть общая папка на необходимой глубине?

#350:  Author: FlasherLocation: Москва PostPosted: Sun Dec 17, 2017 05:10
    —
Да. И при положительном тоже.

#351:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Dec 18, 2017 12:17
    —
Пожалуй, можно добавить такую опцию.

#352:  Author: ingerard PostPosted: Thu Dec 21, 2017 12:09
    —
MVV
Заметил одну особенность или баг, при перемещении любого одного файла пропадает назначенная своя иконка на каталоге. Файл desktop.ini присутствует.

#353:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Dec 21, 2017 14:17
    —
Пропадает иконка где? Попробовал переместить, иконка у папки, из которой перемещаю, остается, у папки, в которую перемещаю - тоже. Если перемещается папка с иконкой, то иконка может пропасть, т.к. атрибуты папок не переносятся - надо новой папке "только чтение" выставить. Но если папка не создавалась и не удалялась, иконка пропадать не должна.

#354:  Author: ingerard PostPosted: Thu Dec 21, 2017 18:02
    —
MVV
Пропадает(сбрасывается на стандартную) иконка папки из которой перемещаешь файл. Саму папку и desktop.ini не трогаю.

Наглядный пример:
gif-ка

#355:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Dec 21, 2017 22:14
    —
Попробовал переместить D:\test\test\.id.reg в папку F:\Temp, ничего не пропадает... Жаль, на гифке не видно, изменяются ли атрибуты папки, у меня не меняются. Попробуй на другой машине.

Ухожу в отпуск, скорее всего до конца новогодних каникул тут не появлюсь. Надеюсь, ничего критического не обнаружитсяSmile

#356:  Author: ingerard PostPosted: Thu Dec 21, 2017 22:28
    —
MVV
На другом ПК та же ситуация. Атрибуты папки не меняются. При обычном перемещении F6 все нормально, так же при архивации любым другим архиваторам с удалением все нормально, проблема именно проявляется с плагином CopyTree.

p.s. Сбрасывает иконку при активном параметре "Удалять пустые исходные каталоги при перемещении" в настройках. Тот который вы недавно починили Smile

p.p.s Атрибут все же меняется, переназначил вручную "Системный", то иконку подхватило. Подправите?

#357:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Oct 30, 2018 12:25
    —
Понял, почему не мог воспроизвести - для воспроизведения необходима положительная глубина, а я пробовал по дефолту (видимо, в конфиге задан параметр DefaultCopyLevel, и отсутствие диалога сбило с толку). Да, проблема связана с удалением исходных каталогов: для удаления каталога с него необходимо снять рид-онли атрибут. Добавил восстановление атрибута при ошибке удаления каталога.

CopyTree 1.3.0.324

#358:  Author: FlasherLocation: Москва PostPosted: Tue Oct 30, 2018 20:09
    —
MVV
А что насчёт этого?

#359:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Oct 30, 2018 22:41
    —
Это чуть позже, там больше работы) я сегодня увидел последнее сообщение в этой теме и осознал, что скорее всего я как-то пропустил его, и прошел почти год, и удалось понять, в чем проблема.

#360:  Author: Beliy.IV PostPosted: Wed Dec 05, 2018 11:04
    —
Ребята подскажите как скопировать всё, но только без музыки и кино

| *.mp3 *.mp4 *.wav *.avi *.mkv *.mpg *.vob

так ?

#361:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Dec 05, 2018 11:57
    —
Beliy.IV
А что мешает просто взять и попробовать свой вариант без чьих-то дополнительных подсказок?

#362:  Author: Beliy.IV PostPosted: Wed Dec 26, 2018 14:59
    —
Avada wrote:
Beliy.IV
А что мешает просто взять и попробовать свой вариант без чьих-то дополнительных подсказок?

Нужно в внешнего HDD скопировать все документы.
На жестком диске есть все: видео фото игры и т.д.
Я создал маски нужных файлов, но он не сработал

Code:
*.xls *.xlsx *.xlsm *.xlsb *.xml *.csv *.doc *.docm *.docx *.rtf *.txt *.pdf *.rar *.zip *.7z *.png *.bmp *.raw *.jpeg *.jpg *.tiff *.dbf

#363:  Author: FlasherLocation: Москва PostPosted: Wed Dec 26, 2018 15:32
    —
Beliy.IV
А зачем CopyTree для этого, если с этим сам ТС при вставке указанной исключающей маски во втором поле диалога копирования справляется?



Total Commander -> Плагины Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group