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

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Что-то у вас тут жуткое затевается... :D
ingerard писал(а):Сейчас все работает как надо, но можете еще добавить /c:0 - копировать включая букву диска.
Не лучше ли сделать консистентно с плагином, чтобы буква диска копировалась при значении -1?
ingerard
Сообщения: 128
Зарегистрирован: Вс дек 04, 2016 21:51

Сообщение ingerard »

MVV
Скрипт от Флешера как альтернатива, на всякий случай, а приоритет все же на связке TCFS2 + CopyTree, так намного быстрее реакция.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Вот в альтернативе, думается, имеет смысл сохранять смысл основных ключей...
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV
У меня 3 режима. Исходным был а), которого у тебя не было. В случае -1 исключается одна папка из относительного пути. За негодностью двух минусов для одного ключа я компенсировал этот момент отсутствием знака для в), где задаём число на отъём слева. Т.е. при нуле отъём отсутствует.

ingerard
Мой ник попрошу писать как полагается, а не в искажённой траскрипции.
По каким критериям реакция определялась? Например, при /s:0,0000001 ?
Последний раз редактировалось Flasher Пн дек 11, 2017 20:33, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Исходным был а), которого у тебя не было.
Если правильно понял описание, б) и в) - это положительные и отрицательные значения DefaultCopyLevel? А что именно делает а)?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):А что именно делает а)?
Что и написано:
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 так? По описанию не совсем ясно.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
ingerard
Сообщения: 128
Зарегистрирован: Вс дек 04, 2016 21:51

Сообщение ingerard »

По каким критериям реакция определялась? Например, при /s:0,0000001 ?
Не совсем понял о чем речь, сравнивал по визуальной задержки. Через скрипт скопированная папка появляется на секунду дольше, чем через CopyTree, плюс еще большой минус в том, что не видно прогресса копирования, очень существенно при объемных файлах...
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Flasher писал(а):
MVV писал(а):А что именно делает а)?
Что и написано:
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 писал(а):Во всех 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
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

ingerard писал(а):Не совсем понял о чем речь, сравнивал по визуальной задержки.
Я же привёл значения для ключа, чтобы сверить.
ingerard писал(а):Через скрипт скопированная папка появляется на секунду дольше, чем через CopyTree
И как вы это определили? То, что ТС не успевает обновлять панель, не значит, что папка не скопировалась.
ingerard писал(а):плюс еще большой минус в том, что не видно прогресса копирования, очень существенно при объемных файлах.
Не спорю. С другой стороны прогресс съедает скорость. Мне оповещения хватает. Множественный прогресс делать не хочу, а общий, если брать средства из коробки, будет не так чисто всплывать.

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

MVV писал(а):Не пойму, куда потом идёт такой симбиоз двух путей (источника и получателя)
В указанный получатель. Там же в параметрах написано. И откуда здесь симбиоз? Это путь источника и относительный к объекту. Тут нет получателя.
MVV писал(а):и почему недостаточно только регулировки числа копируемуых уровней источника.
В каком смысле "недостаточно"? В двух режимах этот контроль и осуществляется. В б) контролируется относительный путь.
MVV писал(а):1: C:\Target\Y\Z\name.ext
Откуда папка Y взялась? См. как у меня.
MVV писал(а):А если DefaultCopyLevel отрицателен, он задаёт число пропускаемых уровней от корня:
Это не отвечает на мой вопрос. Где тут общий для DirBranch каталог-источник? Что будет при -4, -5, -6?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Flasher писал(а):В указанный получатель. Там же в параметрах написано. И откуда здесь симбиоз? Это путь источника и относительный к объекту. Тут нет получателя.
CopyTree копирует файлы из папки-источника в папку-получатель с сохранением структуры. Относительным путём к копируемому объекту является его путь относительно базовой папки, которая по умолчанию является папкой, в которой юзер нажал Ctrl+B, и которая может быть изменена пользователем или опцией DefaultCopyLevel.
Flasher писал(а):Это не отвечает на мой вопрос. Где тут общий для 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 писал(а):В каком смысле "недостаточно"? В двух режимах этот контроль и осуществляется. В б) контролируется относительный путь.
Вот мне и непонятно, почему контроля так много, когда нужно всего лишь выбрать
Flasher писал(а):Откуда папка Y взялась? См. как у меня.
У тебя папка Y является надпапкой Z, я и показал, что будет, если мы копируем файл из Z при различных значениях параметра (разве что явно не сказал, что текущая папка Z).
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):CopyTree копирует файлы ...
Я это прекрасно знаю. Как это относится к приведённой цитате?
MVV писал(а):Твой пример я вообще не понял, ты копируешь файл \X\Y\Z\name.ext в папку C:\5\4\3\2\1
См. внимательно, что я пишу:
Flasher писал(а):Это путь источника и относительный к объекту. Тут нет получателя.
Получатель указывается 3-м параметром, посмотри описание параметров хоть.
MVV писал(а):отрицательные задают абсолютное значение числа уровней до базовой папки
Вот. Я это и хотел увидеть. Т.е. от относительно папки не отнимаются? Но ведь в диалоге такой выбор есть. :?:
MVV писал(а):При -4 базовым путём будет D:\A\B\C, при слишком большом - максимально возможное (хотя, тут возможно имеет смысл показывать диалог).
Давай по-другому. Базовый путь - D:\X (ты писал "C:\Target << D:\X\Y\Z\name.ext"). Так что будет при -3, -4, -5?
MVV писал(а):У тебя папка Y является надпапкой Z
У тебя-то её нет:
MVV писал(а):C:\Target << Z\name.ext
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Flasher писал(а):Вот. Я это и хотел увидеть. Т.е. от относительно папки не отнимаются? Но ведь в диалоге такой выбор есть. :?:
Относительно базовой папки можно только увеличивать число копируемых уровней, т.к. уменьшение может привести к ошибке, если не все файлы будут находиться внутри новой базовой папки. В диалоге такие варианты выбрать можно (при этом заведомо проблемные варианты отмечаются знаком "!"), но не вижу в этом особого смысла.
Flasher писал(а):Я это прекрасно знаю. Как это относится к приведённой цитате?
Это было объяснение терминов издалека.
Flasher писал(а):Давай по-другому. Базовый путь - 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 писал(а):У тебя-то её нет:
Я на примере твоей структуры, где папка Z лежит в папке ...\X\Y, рассмотрел ситуацию копирования в случае, когда мы нажали Ctrl+B в папке Y.
Flasher писал(а):См. внимательно, что я пишу:
Flasher писал(а):Получатель указывается 3-м параметром, посмотри описание параметров хоть.
Это по-прежнему не объясняет, зачем от пути получателя отщеплять уровни. Или у тебя в примере C:\5\4\3\2\1 - это начало пути источника, а ёлочки означают вовсе не направление копирования файла? Поясни тогда, как будут вести себя три режима в случае, когда мы копируем файл D:\A\B\C\X\Y\Z\file.txt в папку C:\Target, если Ctrl+B мы нажали в папке D:\A\B\C.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

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

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

а)    +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
Можешь дать аналогичный пример?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Не понимаю. Я спрашиваю про результат копирования. Получатель у тебя C:\Target. База — D:\X. При чём тут D:\X\Y?
При том, что параметр задаёт новую базу. Вспомни старый плагин TreeCopyPlus, у него был только 1 параметр - число уровней от корня до базы, то же самое здесь достигается отрицательными значениями DefaultCopyLevel.
Зачем тогда добавлял?
Может, кто-то захочет себе в ногу выстрелить, или слить похожие структуры файлов, находящиеся в разных папках...
Можешь дать аналогичный пример?
ОК, для различных DefaultCopyLevel:

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

   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
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):При том, что параметр задаёт новую базу.
Я то писал не про базу, а про результат добавления.
MVV писал(а):Может, кто-то захочет себе в ногу выстрелить
Я поэтому и колебался, делать б) или нет. А ты пишешь, что у тебя в ini его и нет.

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

  -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.

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

≤ -8:  C:\Target\file.txt
Вот. А пишешь:
MVV писал(а):отрицательные задают абсолютное значение числа уровней до базовой папки
число уровней от корня до базы
Так не до, а совместно. Меня как раз такой вариант не устраивает. "До" как раз у меня.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить