Копирование файлов с временной панели с сохранение структуры папок

Здесь обсуждается всё, что касается макросов.
buniak_a_h
Posts: 1610
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 109 times
Been thanked: 141 times
Contact:

Копирование файлов с временной панели с сохранение структуры папок

Post by buniak_a_h »

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





Опубликовал версию 1.5.2 в связи с изменениями в модулях
CopyFiles.TempPanel.lua.1.5.3.7z
(20.66 KiB) Downloaded 28 times
Last edited by buniak_a_h on Tue 31 Dec, 2019 12:38, edited 3 times in total.

buniak_a_h
Posts: 1610
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 109 times
Been thanked: 141 times
Contact:

Копирование файлов с временной панели с сохранение структуры папок

Post by buniak_a_h »

Latest post of the previous page:

Shmuel,

buniak_a_h
Posts: 1610
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 109 times
Been thanked: 141 times
Contact:

Копирование файлов с временной панели с сохранение структуры папок

Post by buniak_a_h »

Сделал 3-ю версию макроса. Changelog:
  • Версия 2
    1. Первая версия работала только во временной панели, созданной плагином TempPanel. Во вторую версию добавлены временные панели от плагинов LuaFAR Search и RESearch
  • Версия 3
    • По рекомендации John Doe заменил проверку GUID-а на флаг файловой панели
    • Добавил проверку, что исходный файл - реальный, т.к. TmpPanel в режиме :any может отображать на панели что угодно
    • Сделан обход ошибки ФАРа в функции Panel.Select для гашения отметок

buniak_a_h
Posts: 1610
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 109 times
Been thanked: 141 times
Contact:

Копирование файлов с временной панели с сохранение структуры папок

Post by buniak_a_h »

Обновил скрипт в первом посте темы. Добавлена простейшая визуализация и прерывание по [Esc].
Господа гуру! Может, кто читает эту тему и сможет ответить на "смежный" вопрос: есть ли возможность как-то визуализировать в макросе процесс копирования одного файла (без программирования самого процесса копирования)? Варианты:
(а) вызов внутренней процедуры копирования файла ФАРа с параметрами (Source, Destination, RewriteMode) и кодом возврата
(б) может, посоветуете плагин с аналогичными возможностями
Просто вызов диалога копирования с последовательностью Keys не очень подходит: не определить, что копирование было прервано. Подозреваю, что меня бы устроила export.GetFiles, но примера использования не нашёл.

User avatar
HaRT
Moderator
Posts: 9332
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 99 times
Been thanked: 213 times

Копирование файлов с временной панели с сохранение структуры папок

Post by HaRT »

buniak_a_h wrote:
Thu 10 May, 2018 07:12
вызов диалога копирования с последовательностью Keys не очень подходит: не определить, что копирование было прервано
Я не гуру, но подозреваю, что прерывание копирования в стандартном диалоге можно отловить, повесив обработчик на соответствующее диалоговое событие. Костыль, конечно, но всё же лучше, чем ничего. Вот тут есть некий пример обработчика (правда, инициализации диалога, притом на Moon Script): viewtopic.php?p=146816#p146816.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 12738
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 36 times
Been thanked: 281 times

Копирование файлов с временной панели с сохранение структуры папок

Post by John Doe »

buniak_a_h wrote:
Thu 10 May, 2018 07:12
не определить, что копирование было прервано.
Проверить существование целевого файла?

buniak_a_h
Posts: 1610
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 109 times
Been thanked: 141 times
Contact:

Копирование файлов с временной панели с сохранение структуры папок

Post by buniak_a_h »

Спасибо всем. Метод реализуемый, но какой-то... чрезвычайный. Через выю, короче. Не люблю я клавиатурные макросы вперемешку с процедурами на языках программирования. Подожду ещё; если никто не присоветует - буду думать в направлении клавимакроса... :-(

User avatar
John Doe
Бюрократ
Posts: 12738
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 36 times
Been thanked: 281 times

Копирование файлов с временной панели с сохранение структуры папок

Post by John Doe »

Альтернативно, можно было бы целиком переложить копирование на какой-либо сторонний компонент (xcopy, robocopy, fastcopy, teracopy, etc), а функции макроса ограничить подготовкой файла с заданием.

User avatar
zg
zero-gravity
Posts: 5773
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 142 times
Contact:

Копирование файлов с временной панели с сохранение структуры папок

Post by zg »

CopyFileEx есть же. там может в самом начеале чуть посложнее, и то не факт, но в перспективе — самый нормальный метод.

buniak_a_h
Posts: 1610
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 109 times
Been thanked: 141 times
Contact:

Копирование файлов с временной панели с сохранение структуры папок

Post by buniak_a_h »

zg wrote:
Thu 10 May, 2018 13:57
CopyFileEx
1. Уж не стал писать... У меня CopyFileEx - персона non grata. Несколько раз копирование обрывалось без всякой диагностики. Т.е. пока скопированным файлом не воспользуешься - об ошибке не узнаешь. Ошибка абсолютно случайная, устойчиво повторить не могу.
2. абсолютно не предусмотрен интерфейс для использования из скрипта. Я имею в виду - нет ни вызова нужной функции через Plugin.Call, ни через командную строку. Или есть, но в документации не описано. А значит - опять Keys...

User avatar
HaRT
Moderator
Posts: 9332
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 99 times
Been thanked: 213 times

Копирование файлов с временной панели с сохранение структуры папок

Post by HaRT »

buniak_a_h wrote:
Thu 10 May, 2018 16:18
У меня CopyFileEx - персона non grata. Несколько раз копирование обрывалось без всякой диагностики.
Вы про плагин? Я подозреваю, что zg имел в виду ф-ю WinAPI.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
zg
zero-gravity
Posts: 5773
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 142 times
Contact:

Копирование файлов с временной панели с сохранение структуры папок

Post by zg »

тем более плагин немного не так называется.

buniak_a_h
Posts: 1610
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 109 times
Been thanked: 141 times
Contact:

Копирование файлов с временной панели с сохранение структуры папок

Post by buniak_a_h »

zg wrote:
Thu 10 May, 2018 17:57
тем более плагин немного не так называется.
Да, извините, плагин - FileCopyEx.
HaRT wrote:
Thu 10 May, 2018 16:23
zg имел в виду ф-ю WinAPI
И что мне с ней делать? писать вставку на СИ для вызова функции? Я этим не занимался пока, и не уверен, что овчинка выделки стоит. Если только написать "универсальный" макрос, вызывающий эту функцию. Для одной задачи - стрельба из пушки по воробьям. Я надеялся, что такое могло уже кому-то понадобиться, и кно-нить уже реализовал. Видимо, нет.

User avatar
HaRT
Moderator
Posts: 9332
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 99 times
Been thanked: 213 times

Копирование файлов с временной панели с сохранение структуры папок

Post by HaRT »

buniak_a_h wrote:
Thu 10 May, 2018 19:11
что мне с ней делать? писать вставку на СИ для вызова функции?
FFI
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1610
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 109 times
Been thanked: 141 times
Contact:

Копирование файлов с временной панели с сохранение структуры папок

Post by buniak_a_h »

HaRT wrote:
Thu 10 May, 2018 19:31
buniak_a_h wrote:
Thu 10 May, 2018 19:11
что мне с ней делать? писать вставку на СИ для вызова функции?
FFI
Это я и имел в виду под "вставкой на СИ".

buniak_a_h
Posts: 1610
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 109 times
Been thanked: 141 times
Contact:

Копирование файлов с временной панели с сохранение структуры папок

Post by buniak_a_h »

HaRT, с ffi возникли проблемы. Посмотрите, пожалуйста, вопрос на форуме, посвящённом ffi

Shtirla
Posts: 116
Joined: Wed 04 Mar, 2009 20:09
Has thanked: 10 times
Been thanked: 2 times

Копирование файлов с временной панели с сохранение структуры папок

Post by Shtirla »

Во первых Спасибо автору ! помог решить задачку быстрее.
во вторых выкладываю модификацию текущего макроса, замена идет поиском первых слэшей в пути, а не из Panel0, ибо накиданные с разных ресурсов файлы так не копировались


Post Reply

Return to “Обсуждение макросов”