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
x-code



Joined: 20 Mar 2012
Posts: 14

Post (Separately) Posted: Mon Mar 17, 2025 21:59    Post subject: Виртуальная папка-архив для поиска по регулярному выражению Reply with quote

Добрый день
Интересует следующий плагин файловой системы. Есть ли такое вообще, а если нет то насколько реально написать и что посоветуете взять за основу.

Плагин ассоциируется с файлами с некоторым расширением (по аналогии с *.zip и т.д.)
Внутри файла данного типа (назову его для краткости и по аналогии файлом "архива") находится путь и маска поиска файлов; маска может быть как простой (звездочки) так и полноценным регулярным выражением (что безусловно лучше т.к. дает больше возможностей).

Открытие "архива" приводит к "входу" в виртуальную папку, содержащую все файлы, находящиеся по заданному пути, включая все
вложенные папки, и удовлетворяющие заданной маске. Т.е. запускается поиск и результаты поиска попадают в виртуальную папку.

например такой файл ищет по пути d:/data1/data2 и вложенным папкам все файлы, содержащие в имени решетку и три цифры непосредственно за ней:
Code:

path=d:/data1/data2
mask=#\d{3}

возможен и более сложный язык запросов, например учитывающий время, размер, наличие и содержимое ADS и т.д.
возможно несколько таких масок - тогда в виртуальную папку попадает всё, что удовлетворяет хотя-бы одной.
возможно и прямое перечисление точных путей к конкретным файлам и папкам - без поиска.

В некотором смысле это способ сохранить в файлах часто используемые "поиски" и пользоваться ими как обычными папками, при этом размещать их в удобных и осмысленных для пользователя местах в файловой системе.

Еще одна аналогия - ярлыки *.lnk; ярлык указывает на один файл, данный же механизм создает виртуальную папку, указывающую на несколько или произвольное, заранее неизвестное количество файлов.

Это отличается от папки с симлинками/хардлинками тем, что содержимое регенерируется автоматически каждый раз при обращении.

Возможно еще урезанная аналогия - "библиотеки" Windows.

Все найденные файлы, отображаемые в виртуальной папке, можно открывать, редактировать, копировать из этой виртуальной папки (но не в нее) и т.п.

Было бы неплохо, чтобы плагин кэшировал результаты предыдущего поиска, сохраняя их непосредственно в файле "архива" в виде простого списка путей к найденным файлам. Это ускорит работу. При этом в фоне (или по отдельной команде?) должен осуществляться повторный поиск и обновление содержимого виртуальной папки и кэша в "архиве".
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 658

Post (Separately) Posted: Wed Mar 19, 2025 00:20    Post subject: Reply with quote

Quote:
что посоветуете взять за основу.

Можно попробовать решить задачу шаблонами поиска и фильтрами.

Например:
Code:

filter2_SearchFor=#\d{3}
filter2_SearchIn=d:\data1\data2
filter2_SearchText=
filter2_SearchFlags=0|002002001020||||||||22220|0000|||

Code:

[em_cd_data2]
cmd=cd d:\data1\data2

[em_cd_filter2]
cmd=cd >filter2

[em_apply_filter2]
cmd=em_cd_data2, em_cd_filter2

Наделать нужных шаблонов и выстроить меню из em_команд. Можно сделать обычный bar-файл "в виде меню" на главной панели инструментов.
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