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

Здесь обсуждается всё, что касается макросов.
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

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





Опубликовал версию 1.5.2 в связи с изменениями в модулях
CopyFiles.TempPanel.lua.1.5.3.7z
(20.66 KiB) Downloaded 148 times
Last edited by buniak_a_h on Tue 31 Dec, 2019 12:38, edited 3 times in total.
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

Latest post of the previous page:

Shmuel,
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

Сделал 3-ю версию макроса. Changelog:
  • Версия 2
    1. Первая версия работала только во временной панели, созданной плагином TempPanel. Во вторую версию добавлены временные панели от плагинов LuaFAR Search и RESearch
  • Версия 3
    • По рекомендации John Doe заменил проверку GUID-а на флаг файловой панели
    • Добавил проверку, что исходный файл - реальный, т.к. TmpPanel в режиме :any может отображать на панели что угодно
    • Сделан обход ошибки ФАРа в функции Panel.Select для гашения отметок
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

Обновил скрипт в первом посте темы. Добавлена простейшая визуализация и прерывание по [Esc].
Господа гуру! Может, кто читает эту тему и сможет ответить на "смежный" вопрос: есть ли возможность как-то визуализировать в макросе процесс копирования одного файла (без программирования самого процесса копирования)? Варианты:
(а) вызов внутренней процедуры копирования файла ФАРа с параметрами (Source, Destination, RewriteMode) и кодом возврата
(б) может, посоветуете плагин с аналогичными возможностями
Просто вызов диалога копирования с последовательностью Keys не очень подходит: не определить, что копирование было прервано. Подозреваю, что меня бы устроила export.GetFiles, но примера использования не нашёл.
User avatar
HaRT
Moderator
Posts: 10854
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 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: 13848
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

buniak_a_h wrote: Thu 10 May, 2018 07:12 не определить, что копирование было прервано.
Проверить существование целевого файла?
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

Спасибо всем. Метод реализуемый, но какой-то... чрезвычайный. Через выю, короче. Не люблю я клавиатурные макросы вперемешку с процедурами на языках программирования. Подожду ещё; если никто не присоветует - буду думать в направлении клавимакроса... :-(
User avatar
John Doe
Бюрократ
Posts: 13848
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Альтернативно, можно было бы целиком переложить копирование на какой-либо сторонний компонент (xcopy, robocopy, fastcopy, teracopy, etc), а функции макроса ограничить подготовкой файла с заданием.
User avatar
zg
zero-gravity
Posts: 6034
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

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

Post by zg »

CopyFileEx есть же. там может в самом начеале чуть посложнее, и то не факт, но в перспективе — самый нормальный метод.
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

zg wrote: Thu 10 May, 2018 13:57CopyFileEx
1. Уж не стал писать... У меня CopyFileEx - персона non grata. Несколько раз копирование обрывалось без всякой диагностики. Т.е. пока скопированным файлом не воспользуешься - об ошибке не узнаешь. Ошибка абсолютно случайная, устойчиво повторить не могу.
2. абсолютно не предусмотрен интерфейс для использования из скрипта. Я имею в виду - нет ни вызова нужной функции через Plugin.Call, ни через командную строку. Или есть, но в документации не описано. А значит - опять Keys...
User avatar
HaRT
Moderator
Posts: 10854
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 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: 6034
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

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

Post by zg »

тем более плагин немного не так называется.
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 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: 10854
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

buniak_a_h wrote: Thu 10 May, 2018 19:11 что мне с ней делать? писать вставку на СИ для вызова функции?
FFI
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 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
Это я и имел в виду под "вставкой на СИ".
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

HaRT, с ffi возникли проблемы. Посмотрите, пожалуйста, вопрос на форуме, посвящённом ffi
Shtirla
Posts: 117
Joined: Wed 04 Mar, 2009 20:09
Has thanked: 10 times
Been thanked: 2 times

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

Post by Shtirla »

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

Post Reply

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