Поиск файлов (Alt-F7) и фильтр

Здесь можно сообщить о найденных багах в Far.
Izver
Posts: 11
Joined: Wed 25 Jan, 2017 07:48

Поиск файлов (Alt-F7) и фильтр

Postby Izver » Thu 26 Jan, 2017 09:10

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

При поиске файлов хочу ограничить поиск фильтрацией по названиям папок.

Для этого в поиске (Alt-F7) задаю параметры:
1) Скрин окна поиска:

Code: Select all

  ╔═════════════════════════════ Поиск файла ══════════════════════════════╗
  ║ Одна или несколько масок файлов:                                       ║
  ║ *Swift*                                                               ↓║
  ╟────────────────────────────────────────────────────────────────────────╢
  ║ Содержащих текст:                                                      ║
  ║                                                                       ↓║
  ║ Используя кодовую страницу:                                            ║
  ║ Автоматическое определение                                            ↓║
  ╟───────────────────────────────────┬────────────────────────────────────╢
  ║ [ ] Учитывать регистр             │ [ ] Искать в архивах               ║
  ║ [ ] Только целые слова            │ [x] Искать папки                   ║
  ║ [ ] Искать 16-ричный код          │ [x] Искать в символических ссылках ║
  ║ [ ] Не содержащих                 │ [ ] Искать в альтернативных потоках║
  ╟───────────────────────────────────┴────────────────────────────────────╢
  ║ Выберите область поиска:                                               ║
  ║ С текущей папки                 ↓   [x] Использовать фильтр            ║
  ╟────────────────────────────────────────────────────────────────────────╢
  ║      { Искать } [ Диск ] [ Фильтр ] [ Дополнительно ] [ Отмена ]       ║
  ╚════════════════════════════════════════════════════════════════════════╝


2) Скрин списка фильтров

Code: Select all

  ╔════════════════════════════ Меню фильтров ════════════════════════════╗
  ║  *                     │ .............................. ... │ *       ║
  ║+ *BPL*                 │ ..............D+.............. ... │ *BPL*   ║
  ║  *Swift*               │ ..............D-.............. ... │ *Swift* ║
  ╟────────────────────────┼────────────────────────────────────┼─────────╢
  ║  0. Папки              │ ..............D+.............. ... │         ║
  ║  1. Файлы панели       │ ..............D-.............. ... │ *.dsk   ║
  ║  2. Файлы панели       │ ..............D-.............. ... │ *.ion   ║
  ║  3. Файлы панели       │ ..............D-.............. ... │ *.log   ║
  ║  4. Файлы панели       │ ..............D-.............. ... │ *.txt   ║
  ╚══════ +,-,Пробел,I,X,BS,Shift+BS,Ins,Del,F4,F5,Ctrl+Up,Ctrl+Dn ═══════╝


3) Настройка фильтра:

Code: Select all

  ╔════════════════════════════════ Фильтр ════════════════════════════════╗
  ║ Имя фильтра: *BPL*                                                    ↓║
  ╟────────────────────────────────────────────────────────────────────────╢
  ║ [x] Маска: *BPL*                                                      ↓║
  ╟──────────────────┬─────────────────────────────────────────────────────╢
  ║ [ ] Размер:      │ [ ] Дата/Время:               [ Текущая ] [ Сброс ] ║
  ║   >=             │   записи          ↓     <=   .  .        :  :  ,    ║
  ║   <=             │   [ ] Относительная     >=   .  .        :  :  ,    ║
  ╟──────────────────┴─────────────────────────────────────────────────────╢
  ║ [x] Атрибуты                                                           ║
  ║   [?] Только для чтения              [?] Разрежённый                   ║
  ║   [?] Архивный                       [?] Временный                     ║
  ║   [?] Скрытый                        [?] Автономный                    ║
  ║   [?] Системный                      [?] Точка повторного анализа      ║
  ║   [?] Сжатый                         [?] Виртуальный                   ║
  ║   [?] Зашифрованный                  [?] Поток целостности             ║
  ║   [?] Неиндексируемый                [?] Нет данных очистки            ║
  ║   [x] Каталог                                                          ║
  ╟────────────────────────────────────────────────────────────────────────╢
  ║ [ ] Болee одной жёсткой ссылки                                         ║
  ╟────────────────────────────────────────────────────────────────────────╢
  ║                     { OK } [ Очистить ] [ Отмена ]                     ║
  ╚════════════════════════════════════════════════════════════════════════╝


Условия поиска:
Поиск по 10 папкам, в каждой по 3 тыс подпапок, и 100 тыс файлов. Всего в каждой из 10 папок внутри находится 10 папок удовлетворяющие условию *BPL*. Т.е в итоге FAR при поиске в 30 тыс. папок должен найти 100 директорий по маске *BPL*, и в них искать файлы по маске *Swift* (примерно около 200 файлов).

Получаю:
1) При заданных параметрах как на скринах, поиск выполняется очень долго (вчера я вырубил поиск после 2-х часов). Сама отмена срабатывает нормально, т.е. процесс поиска не зависает. Только нажимаешь Esc, вылезает подтверждение отмены.
2) Изменяем условия, в основном окне поиска поле "Одна или несколько масок файлов" ставим *
Остальные параметры поиска оставляем прежними.
При данных условиях поиск выполняется значительно быстрее (около 15 минут)

Выводы: При использовании фильтров (где фильтр настроен на отбор папок по маске) очень долго происходит поиск с использованием маски файлов (в основном окне поиска).

Izver
Posts: 11
Joined: Wed 25 Jan, 2017 07:48

Поиск файлов (Alt-F7) и фильтр

Postby Izver » Thu 26 Jan, 2017 09:18

Работа проверялась на FAR:
3.0 build 4774 x86
3.0 build 4888 x86 (ночная бсорка)
Ночная сборка запускалась с ключами : far.exe -m -p. Результат работы аналогичный, поведение не меняется

User avatar
zg
zero-gravity
Posts: 5227
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

Поиск файлов (Alt-F7) и фильтр

Postby zg » Thu 26 Jan, 2017 12:23

просто на наборе files: 1154319, folders: 145925 ваш поиск у меня выполняется секунд 30. возможно дело в вашей структуре файлов. выложьте результат dir /s.
а вот при этом двухчасовом поиске текущая папка поиска меняется (строка над кнопками)?

Izver
Posts: 11
Joined: Wed 25 Jan, 2017 07:48

Поиск файлов (Alt-F7) и фильтр

Postby Izver » Thu 26 Jan, 2017 13:05

zg wrote:возможно дело в вашей структуре файлов. выложьте результат dir /s.


Результат выполения dir /s в текстовый файл у меня занял 25 Мб, архив zip макс. сжатие - около 3 Мб
Нужно ли выкладывать ?

zg wrote:а вот при этом двухчасовом поиске текущая папка поиска меняется (строка над кнопками)?

Да, меняется

Izver
Posts: 11
Joined: Wed 25 Jan, 2017 07:48

Поиск файлов (Alt-F7) и фильтр

Postby Izver » Thu 26 Jan, 2017 13:59

dir /AD /S - файл zip занимает 65 Кб
результат выполнения команды tree в zip занимает 13Кб

И ещё - поиск внутри одной из 10 папок (содержимое в каждой не сильно отличается) даёт такой странный результат
Без использования фильтра - находит нужные файлы, с использованием фильтра - не находит. Фильтр настроен, как указано выше

User avatar
HaRT
Moderator
Posts: 7955
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 times

Поиск файлов (Alt-F7) и фильтр

Postby HaRT » Thu 26 Jan, 2017 16:30

Izver wrote:Source of the post Нужно ли выкладывать ?
Да, ведь 3 МиБ — это не так уж много.
Izver wrote:Source of the post dir /AD /S - файл zip занимает 65 Кб
Если не трудно, выложите и его тоже.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
zg
zero-gravity
Posts: 5227
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

Поиск файлов (Alt-F7) и фильтр

Postby zg » Thu 26 Jan, 2017 16:50

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

Izver
Posts: 11
Joined: Wed 25 Jan, 2017 07:48

Поиск файлов (Alt-F7) и фильтр

Postby Izver » Fri 27 Jan, 2017 08:08

Вот ссылка на архив - внутри структура папок
http://rgho.st/67W6xky6P

Для теста - распаковать, в папке /cli/AHDFRM.BPL создать файл с именем, подпадающим под маску *swift*
и попробовать поискать. Параметры поиска и фильтра указаны в начале

У меня стабильно не находит тестовый файл. Отключаю фильтр - находит, но и поиск становится конечно более длительным.

User avatar
zg
zero-gravity
Posts: 5227
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

Поиск файлов (Alt-F7) и фильтр

Postby zg » Fri 27 Jan, 2017 13:14

а с чего вы взяли,что он должен находиться? вы отфильтровываете результаты поиска по условию только папки с маской *BPL* и ожидаете, что в результирующем списке найдутся файлы по маске *swift*. создайте папку с именем swift.bpl — она найдётся. каких-то неожиданных тормозов при поиске я тоже не заметил.

Izver
Posts: 11
Joined: Wed 25 Jan, 2017 07:48

Поиск файлов (Alt-F7) и фильтр

Postby Izver » Fri 27 Jan, 2017 15:42

zg wrote:а с чего вы взяли,что он должен находиться? вы отфильтровываете результаты поиска по условию только папки с маской *BPL* и ожидаете, что в результирующем списке найдутся файлы по маске *swift*. создайте папку с именем swift.bpl — она найдётся. каких-то неожиданных тормозов при поиске я тоже не заметил.

Я ожидаю, что фильтр даст список папок по маске "*BPL*" (в фильтре указано - обрабатывать только папки)
а затем сработает поиск файла по маске *swift* - как задано в основном окне.

Вы же не хотите сказать, что если мы выбираем крыжик "Использовать фильтр", то поле "Одна или несколько масок файлов" уже не должно рабоатать ??

User avatar
HaRT
Moderator
Posts: 7955
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 times

Поиск файлов (Alt-F7) и фильтр

Postby HaRT » Fri 27 Jan, 2017 16:55

Izver wrote:Source of the post в фильтре указано - обрабатывать только папки
Нет, в фильтре указано „находить только директории, притом по маске“. Маски в основном окне — это дополнительное ограничение, используемое гораздо чаще, чем фильтры.

А для решения Вашей задачи рекомендую Вам в первый заход без всяких фильтров найти все директории *BPL*, отправить их из результатов поиска на временную панель, там выделить, а после этого поиском в выделенном (опять же без фильтров) найти все файлы *swift*.
Last edited by HaRT on Fri 27 Jan, 2017 17:02, edited 1 time in total.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

Поиск файлов (Alt-F7) и фильтр

Postby John Doe » Tue 31 Jan, 2017 09:25

HaRT wrote:Source of the post А для решения Вашей задачи[...]
Всё верно, сейчас чисто фильтрами не получится.
Но ведь (и даже когда-то обсуждалось) функциональность фильтров тоже можно улучшить.

Задача, поставленная автором топика, на мой взгляд достаточно типичная.

P.S.
Разумеется речь уже будет идти не о баге, а о пожелании, причём достаточно спорном (система фильтров усложнится).

P.P.S.
Хотя, припоминая прошлые обсуждения, может быть система как раз наоборот станет логически более стройной, если разделить "что" искать, и "где".
Last edited by John Doe on Tue 31 Jan, 2017 09:34, edited 1 time in total.

Izver
Posts: 11
Joined: Wed 25 Jan, 2017 07:48

Поиск файлов (Alt-F7) и фильтр

Postby Izver » Wed 01 Feb, 2017 09:15

HaRT wrote:
Izver wrote:Source of the post в фильтре указано - обрабатывать только папки
Нет, в фильтре указано „находить только директории, притом по маске“. Маски в основном окне — это дополнительное ограничение, используемое гораздо чаще, чем фильтры.

А для решения Вашей задачи рекомендую Вам в первый заход без всяких фильтров найти все директории *BPL*, отправить их из результатов поиска на временную панель, там выделить, а после этого поиском в выделенном (опять же без фильтров) найти все файлы *swift*.


Попробовал Ваше решение вчера, не устраивает оно меня по двум причинам:
1) одно действие превращается в два, причем оба действия (поиск) сопряжены с телодвижениями - включение/отключение фильтров, настройка масок, включение/отключение масок в основном окне
2) скорость. Простой поиск хуже по скорости против сложного примерно в два раза, это примерно 10 и 5 минут для моего случая. Мне банально проще задать простой поиск, и пойти попить чай.

Так что мне сейчас проще пользоваться простым и проверенным решением (Alt-F7 и просто задать маску файла). Пусть чуть дольше ищет.
Для меня, получается, фильтры - в данном случае не помощники :) .

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


Return to “Глюки и баги”

Who is online

Users browsing this forum: No registered users and 4 guests