View previous topic :: View next topic |
Author |
Message |
dumi
Joined: 26 Feb 2023 Posts: 7
|
(Separately) Posted: Fri Jan 26, 2024 14:24 Post subject: Как работать с предварительно выделенными файлами |
|
|
Многоуважаемые знатоки ТС, просветите пожалуйста недостойного. Все главные функции файлменеджера (копирование, перемещение, архивирование и т.д.) умеют работать с предварительно выделенными файлами. Как из собственного скрипта, привязанного к кнопке, получить список предварительно выделенных файлов оптом или сформировать его путем перебора? Неважно, на каком языке, Бог с ним ... Интересует информация об этих объектах, как элементах контекста ТС или ОС, к которым должен быть доступ из скриптов. Должен существовать либо готовый список, либо какие-то отличительные характеристики у выделенных файлов, либо и то и другое. Потратил уже кучу времени на поиски на тематических форумах, и просто в Гугле, результата - практически ноль. Не верится, что это до меня никому не было нужно. Может это какое-то табу или "стыдная" тема, или имя "того, кого нельзя называть" (если публично страшно, напишите по секрету в личку )? Или я говорю не на том языке(?) ...
Фрагмент скрипта в цикле перебора всех файлов текущей директории:
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 |
|
|
CaptainFlint
Joined: 14 Dec 2004 Posts: 6151 Location: Москва
|
(Separately) Posted: Fri Jan 26, 2024 18:13 Post subject: |
|
|
В подавляющем большинстве случаев выделенные файлы попросту передаются на вход запускаемой программе или скрипту через стандартные шаблоны Тотала, такие как %L, %S и пр., описанные в его справке.
https://flint-inc.ru/tchelp/#dlg_configbuttonbar
Скрипту остаётся лишь взять этот готовый список и работать с ним. Способ получения списка и его обработки, разумеется, зависит от конкретного шаблона и от возможностей выбранного языка программирования (в питоне это, например, переменная sys.argv или специализированный модуль argparse для разбора аргументов командной строки).
В отдельных случаях может возникать задача получения списка файлов непосредственно из окна Тотала, без запуска дополнительного приложения. Такая возможность тоже имеется, но это уже заметно сложнее и требует обмена сообщениями с главным окном Тотала посредством WinAPI-функций. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
|
dumi
Joined: 26 Feb 2023 Posts: 7
|
(Separately) Posted: Fri Jan 26, 2024 20:16 Post subject: |
|
|
CaptainFlint
Похоже это то, что надо! Спасибо.
Но, ... сопутствующий вопросец ...
Если я правильно понял, то "стандартный шаблон" – это текст "%S %Y" в поле "Параметры" кнопки? Больше ничего? Разделитель не нужен? Или я все не так понял?..
Работает! Только насчет разделителя в строке параметров - все еще вопросик, ну да ладно ... |
|
Back to top |
|
|
dumi
Joined: 26 Feb 2023 Posts: 7
|
(Separately) Posted: Fri Feb 02, 2024 13:44 Post subject: |
|
|
Разделитель в "Параметрах" кнопки не нужен.
Тему можно закрыть, но я не знаю как ... |
|
Back to top |
|
|
|
|
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
|