Копирование файлов с временной панели с сохранение структуры папок
- buniak_a_h
- Posts: 4260
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
Предлагаю небольшой макрос, копирующий файлы с временной панели, открытой на активной панели (извините за тавтологию) в директорий, открытый на неактивной панели. Макрос "рассовывает" копируемые файлы по подкаталогам в соответствии с их расположением в исходной структуре (относительно "корневой" папки). Особенно полезна для копирования результатов поиска файлов, помещённых на временную панель.
Опубликовал версию 1.5.2 в связи с изменениями в модулях
Опубликовал версию 1.5.2 в связи с изменениями в модулях
Last edited by buniak_a_h on Tue 31 Dec, 2019 12:38, edited 3 times in total.
- buniak_a_h
- Posts: 4260
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
Latest post of the previous page:
Shmuel,- buniak_a_h
- Posts: 4260
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
Сделал 3-ю версию макроса. Changelog:
- Версия 2
- Первая версия работала только во временной панели, созданной плагином TempPanel. Во вторую версию добавлены временные панели от плагинов LuaFAR Search и RESearch
- Версия 3
- По рекомендации John Doe заменил проверку GUID-а на флаг файловой панели
- Добавил проверку, что исходный файл - реальный, т.к. TmpPanel в режиме :any может отображать на панели что угодно
- Сделан обход ошибки ФАРа в функции Panel.Select для гашения отметок
- buniak_a_h
- Posts: 4260
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
Обновил скрипт в первом посте темы. Добавлена простейшая визуализация и прерывание по [Esc].
Господа гуру! Может, кто читает эту тему и сможет ответить на "смежный" вопрос: есть ли возможность как-то визуализировать в макросе процесс копирования одного файла (без программирования самого процесса копирования)? Варианты:
(а) вызов внутренней процедуры копирования файла ФАРа с параметрами (Source, Destination, RewriteMode) и кодом возврата
(б) может, посоветуете плагин с аналогичными возможностями
Просто вызов диалога копирования с последовательностью Keys не очень подходит: не определить, что копирование было прервано. Подозреваю, что меня бы устроила export.GetFiles, но примера использования не нашёл.
Господа гуру! Может, кто читает эту тему и сможет ответить на "смежный" вопрос: есть ли возможность как-то визуализировать в макросе процесс копирования одного файла (без программирования самого процесса копирования)? Варианты:
(а) вызов внутренней процедуры копирования файла ФАРа с параметрами (Source, Destination, RewriteMode) и кодом возврата
(б) может, посоветуете плагин с аналогичными возможностями
Просто вызов диалога копирования с последовательностью Keys не очень подходит: не определить, что копирование было прервано. Подозреваю, что меня бы устроила export.GetFiles, но примера использования не нашёл.
- HaRT
- Moderator
- Posts: 10854
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Копирование файлов с временной панели с сохранение структуры папок
Я не гуру, но подозреваю, что прерывание копирования в стандартном диалоге можно отловить, повесив обработчик на соответствующее диалоговое событие. Костыль, конечно, но всё же лучше, чем ничего. Вот тут есть некий пример обработчика (правда, инициализации диалога, притом на Moon Script): viewtopic.php?p=146816#p146816.buniak_a_h wrote: ↑Thu 10 May, 2018 07:12 вызов диалога копирования с последовательностью Keys не очень подходит: не определить, что копирование было прервано
Фар есть инструмент, а не нянька. © 2009 DrKnS
- John Doe
- Бюрократ
- Posts: 13848
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
Проверить существование целевого файла?
- buniak_a_h
- Posts: 4260
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
Спасибо всем. Метод реализуемый, но какой-то... чрезвычайный. Через выю, короче. Не люблю я клавиатурные макросы вперемешку с процедурами на языках программирования. Подожду ещё; если никто не присоветует - буду думать в направлении клавимакроса...
- John Doe
- Бюрократ
- Posts: 13848
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
Альтернативно, можно было бы целиком переложить копирование на какой-либо сторонний компонент (xcopy, robocopy, fastcopy, teracopy, etc), а функции макроса ограничить подготовкой файла с заданием.
- zg
- zero-gravity
- Posts: 6034
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
CopyFileEx есть же. там может в самом начеале чуть посложнее, и то не факт, но в перспективе — самый нормальный метод.
- buniak_a_h
- Posts: 4260
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
1. Уж не стал писать... У меня CopyFileEx - персона non grata. Несколько раз копирование обрывалось без всякой диагностики. Т.е. пока скопированным файлом не воспользуешься - об ошибке не узнаешь. Ошибка абсолютно случайная, устойчиво повторить не могу.
2. абсолютно не предусмотрен интерфейс для использования из скрипта. Я имею в виду - нет ни вызова нужной функции через Plugin.Call, ни через командную строку. Или есть, но в документации не описано. А значит - опять Keys...
- HaRT
- Moderator
- Posts: 10854
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Копирование файлов с временной панели с сохранение структуры папок
Вы про плагин? Я подозреваю, что zg имел в виду ф-ю WinAPI.buniak_a_h wrote: ↑Thu 10 May, 2018 16:18 У меня CopyFileEx - персона non grata. Несколько раз копирование обрывалось без всякой диагностики.
Фар есть инструмент, а не нянька. © 2009 DrKnS
- zg
- zero-gravity
- Posts: 6034
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
тем более плагин немного не так называется.
- buniak_a_h
- Posts: 4260
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
Да, извините, плагин - FileCopyEx.
И что мне с ней делать? писать вставку на СИ для вызова функции? Я этим не занимался пока, и не уверен, что овчинка выделки стоит. Если только написать "универсальный" макрос, вызывающий эту функцию. Для одной задачи - стрельба из пушки по воробьям. Я надеялся, что такое могло уже кому-то понадобиться, и кно-нить уже реализовал. Видимо, нет.
- HaRT
- Moderator
- Posts: 10854
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Копирование файлов с временной панели с сохранение структуры папок
FFIbuniak_a_h wrote: ↑Thu 10 May, 2018 19:11 что мне с ней делать? писать вставку на СИ для вызова функции?
Фар есть инструмент, а не нянька. © 2009 DrKnS
- buniak_a_h
- Posts: 4260
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
Это я и имел в виду под "вставкой на СИ".HaRT wrote: ↑Thu 10 May, 2018 19:31FFIbuniak_a_h wrote: ↑Thu 10 May, 2018 19:11 что мне с ней делать? писать вставку на СИ для вызова функции?
- buniak_a_h
- Posts: 4260
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
HaRT, с ffi возникли проблемы. Посмотрите, пожалуйста, вопрос на форуме, посвящённом ffi
Копирование файлов с временной панели с сохранение структуры папок
Во первых Спасибо автору ! помог решить задачку быстрее.
во вторых выкладываю модификацию текущего макроса, замена идет поиском первых слэшей в пути, а не из Panel0, ибо накиданные с разных ресурсов файлы так не копировались
во вторых выкладываю модификацию текущего макроса, замена идет поиском первых слэшей в пути, а не из Panel0, ибо накиданные с разных ресурсов файлы так не копировались