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 

Single Post  Topic: Виртуальная папка-архив для поиска по регулярному выражению 
Author Message
x-code



PostPosted: 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.

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

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


Powered by phpBB © 2001, 2005 phpBB Group