Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Как работать с предварительно выделенными файлами

 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
dumi



Joined: 26 Feb 2023
Posts: 7

Post (Separately) Posted: Fri Jan 26, 2024 14:24    Post subject: Как работать с предварительно выделенными файлами Reply with quote

Многоуважаемые знатоки ТС, просветите пожалуйста недостойного. Все главные функции файлменеджера (копирование, перемещение, архивирование и т.д.) умеют работать с предварительно выделенными файлами. Как из собственного скрипта, привязанного к кнопке, получить список предварительно выделенных файлов оптом или сформировать его путем перебора? Неважно, на каком языке, Бог с ним ... Интересует информация об этих объектах, как элементах контекста ТС или ОС, к которым должен быть доступ из скриптов. Должен существовать либо готовый список, либо какие-то отличительные характеристики у выделенных файлов, либо и то и другое. Потратил уже кучу времени на поиски на тематических форумах, и просто в Гугле, результата - практически ноль. Не верится, что это до меня никому не было нужно. Может это какое-то табу или "стыдная" тема, или имя "того, кого нельзя называть" (если публично страшно, напишите по секрету в личку Twisted Evil )? Или я говорю не на том языке(?) ...
Фрагмент скрипта в цикле перебора всех файлов текущей директории:
Code:
    if os.path.isfile (file) and os.access (file, os.R_OK):   
         # Проверяем, что файл выделен
         file_info = os.stat (file)
         file_attributes = file_info.st_mode               
         if file_attributes & stat.FILE_ATTRIBUTE_ARCHIVE:  # Это вроде должно работать, но не работает
        show_var("file_attributes")  # Это моя подпрограммка для отладки, которая показывает значение переменной в модальном окошке:  file_attributes=33206 (это правильное ожидаемое значение)
        show_var("stat.FILE_ATTRIBUTE_ARCHIVE")   # stat.FILE_ATTRIBUTE_ARCHIVE = NONE (а вот это неожиданно)
– для всех файлов, независимо от их выделенности ... В результате в список выделенных проходят все файлы текущей дирректории...
Какие еще улики в объектных моделях ТС или ОС могут быть использованы для выявления выделенности файла?
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Fri Jan 26, 2024 18:13    Post subject: Reply with quote

В подавляющем большинстве случаев выделенные файлы попросту передаются на вход запускаемой программе или скрипту через стандартные шаблоны Тотала, такие как %L, %S и пр., описанные в его справке.
https://flint-inc.ru/tchelp/#dlg_configbuttonbar
Скрипту остаётся лишь взять этот готовый список и работать с ним. Способ получения списка и его обработки, разумеется, зависит от конкретного шаблона и от возможностей выбранного языка программирования (в питоне это, например, переменная sys.argv или специализированный модуль argparse для разбора аргументов командной строки).

В отдельных случаях может возникать задача получения списка файлов непосредственно из окна Тотала, без запуска дополнительного приложения. Такая возможность тоже имеется, но это уже заметно сложнее и требует обмена сообщениями с главным окном Тотала посредством WinAPI-функций.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
dumi



Joined: 26 Feb 2023
Posts: 7

Post (Separately) Posted: Fri Jan 26, 2024 20:16    Post subject: Reply with quote

CaptainFlint
Похоже это то, что надо! Спасибо.
Но, ... сопутствующий вопросец ...
Если я правильно понял, то "стандартный шаблон" – это текст "%S %Y" в поле "Параметры" кнопки? Больше ничего? Разделитель не нужен? Или я все не так понял?..

Работает! Smile Только насчет разделителя в строке параметров - все еще вопросик, ну да ладно ...
Back to top
View user's profile Send private message
dumi



Joined: 26 Feb 2023
Posts: 7

Post (Separately) Posted: Fri Feb 02, 2024 13:44    Post subject: Reply with quote

Разделитель в "Параметрах" кнопки не нужен.
Тему можно закрыть, но я не знаю как ...
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group