Как создать обработчик события появления нового файла в обычной панели ФАРа?

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
ivan.bykov
Posts: 2
Joined: Fri 29 Aug, 2014 11:59

Как создать обработчик события появления нового файла в обычной панели ФАРа?

Post by ivan.bykov »

Подскажите пожалуйста, как на lua создать обработчик события появления нового файла в обычной панели ФАРа?
Файл создаётся в определённой директории, например в директории, показанной на панели. Файл создаётся неким другим процессом. В идеале интересует обработчик появления файла с определённым расширением.
User avatar
HaRT
Moderator
Posts: 9651
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 119 times
Been thanked: 244 times

Как создать обработчик события появления нового файла в обычной панели ФАРа?

Post by HaRT »

 ! Message from: HaRT
Тема отделена
Фар есть инструмент, а не нянька. © 2009 DrKnS
buniak_a_h
Posts: 2286
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 139 times
Been thanked: 245 times
Contact:

Как создать обработчик события появления нового файла в обычной панели ФАРа?

Post by buniak_a_h »

ivan.bykov wrote: Thu 03 Dec, 2020 16:01 как на lua создать обработчик события появления нового файла в обычной панели ФАРа?
Чем-то это мне напоминает «как сделать событие на смену папки панели». Лично я в древесной панели сделал назначением таймера (частотой Far.GetConfig("Interface.RedrawTimeout"). Типа запоминаете APanel.Path и список итемов по маске. Затем в обработчике таймера (если Path не поменялось) проверяете, не появилось ли нового итема. Если да - вызываете обработку события.

Если кто-то знает другой способ - было бы интересно узнать
User avatar
HaRT
Moderator
Posts: 9651
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 119 times
Been thanked: 244 times

Как создать обработчик события появления нового файла в обычной панели ФАРа?

Post by HaRT »

buniak_a_h wrote: Thu 03 Dec, 2020 17:22 Если кто-то знает другой способ - было бы интересно узнать
Ну, поскольку речь идёт про обычную файловую панель, можно применить способ, не специфичный для Фара, — повесить File System Watcher на директорию панели. Не знаю, насколько это просто сделать в Lua (через FFI?). Правда, чтобы его вовремя отключить, надо опять же по таймеру проверять, не сменилась ли в панели директория.
Фар есть инструмент, а не нянька. © 2009 DrKnS
buniak_a_h
Posts: 2286
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 139 times
Been thanked: 245 times
Contact:

Как создать обработчик события появления нового файла в обычной панели ФАРа?

Post by buniak_a_h »

HaRT, я имел в виду средствами ФАРа и LUA.
К моей идее: возможно, имеет смысл проверять быстродействие (сетевой или плагиновой) папки. Если папка медленная - таймаут увеличивать.
citRiks
Posts: 1097
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 342 times
Been thanked: 57 times

Как создать обработчик события появления нового файла в обычной панели ФАРа?

Post by citRiks »

Луа-ФФИ (ой сложнааа), или плагин (тоже сложна, но по другим причинам)

из "официалных" способов сделать плагин:
* паскалный плагин
* сишный плагин

Менее официальные, но вполне рабочие:
* дот-нетовский плагин ФарНет
* питоновский плагин от @Shmuel
* питоновский плагин от @DrKnS

ну или в цикле по таймеру проверять файлы (in Lua)
это не эффективно, да, но может быть спрашивателю тут и не нужна эффективность
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
Post Reply

Return to “Нужна помощь”