Pull to refresh

Comments 78

В проводнике Windows7 если не ошибаюсь такое есть
UFO landed and left these words here
В Total Commander это тоже уже реализовано)
Да, я в курсе, но вот от необходимости совершать все эти действия я и хотел бы избавиться (открыть explorer, перевести взгляд на адресную строку, щелкнуть на ней, печатать полный путь, нажимая tab и тп) (собственно, и постарался объяснить в статье).

И заодно добавить поиск по неполному имени (prog fil вместо downloaded program files) (это быстро и вы даже можете не знать точное имя).

И, кроме того, удобно искать папку только по имени, не будучи уверенным, где она находится (например, вы подзабыли, находится ли каталог Blah-Blah в папке Program Files или Program Files (x32))--вам придется два раза набирать путь, если сразу не угадаете.

И мне нравится возможность просматривать список соответствий сразу же при нажатии клавиш (чтоб иметь возможность изменить запрос, если я ошибся в имени папки).
Поиск-то в Вин 7 вовсе не медленный, особенно если в индексе, и вызывать его можно быстрее — из меню Пуск. Я бы скорее добавил в левую панель проводника нужные мне папки или закрепил бы их на иконке проводника в панели задач. Киллер фича ок.
Только не всегда охото индексировать террабайты информации…
Не преувеличивайте, порнофайлов на Вашем компьютере меньше терабайта.
Ну и к слову, индексировать нужно ведь не террабайты информации, а максимум — несколько мегабайт имен файлов для подсказок.
Музыка во флаке довольно таки много занимает, не скажу что я что-то часто там ищу (как правило в музыке все разложено по Исполнитель\Альбом\Трек и плюс медиа библиотека делает свое дело). Однако когда всетаки требуется там найти «пропавший» файл как правило использую сторонние программы, но никак не виндовый поисковик.
А можно поинтересоваться, какая разница для индексации — во флаке музыка, или в 64Кб/с mp3?
Я про общие размеры. Все же 1Тб во флаке будет дольше индексироваться чем тоже самое в 320 или V0, и тем более 64.
o_O Он не IT-шник, бейте его!

Размер тегов, длина имени файлов и скорость индексации от размера файла не зависит )
В одном кошельке было пусто. В другой — миллиард долларов по 1 центу.
Кошелек потерялся. Добрый человек его нашел и решил вернуть владельцу, благо внутри были координаты.
Вопрос: сколько нужно времени, чтобы прочитать бумажку с телефоном владельца первого и второго кошельков и зависит ли это от их содержимого (корыстные цели не учитывать)?
Пример крут, но очевидно, что тому, кто с кошельком и миллиардом — больше. Ведь перед этим крайне необходимо запостить пару фоток этого детища вконтакт, написать статью на хабр о том, как мало сервисов, которые бы позволили быстро находиться потерявших и нашедших, взвесить ради интереса эту мелочь, написать второй пост на хабр о том, как ты собираешься отправить это все владельцу, чтобы народ плюсовал и ждал апдейтов… это Вам не индексаааация )))
Одинакого будет индексироваться, я уверяю.
А если во всех форматах 1Тб, то flac еще и быстрее на порядок будет.
>>или закрепил бы их на иконке проводника в панели задач

а что мешает вам это сделать?
Спасибо вам огромное!
Мне, программисту, этого функционала сильно не хватало.

Единственное, как можно было добиться чего-то подобного, это в папке набирать первые буквы нужного файла (не одну, а несколько, только быстро) — тогда выделялся нужный файл.
Очень удобно, взял на службу. Жду новых версий =)
Года так 3 использую Everything — voidtools.com/
На форуме последние версии — forum.voidtools.com/viewforum.php?f=9

Создает кэш всех(!) имен файлов и папок. Моментальный поиск. Куча горячих клавиш, в том числе и вызов. Висит в трее и постоянно держит кэш в актуальном состоянии. Сканирование сетевых папок и т.д.

На сколько я понимаю, код открыт и есть консольный поисковик. Последняя тестовая версия была уже давно, но автор появляется на форуме и уверяет, что проект не мертв. Хотя и уже имеющаяся утилитка работает на 200%.

Поддерживает собственные фильтры. Я уже написал себе фильтр на удаление мусора (вместо сотни разных мусорочисток).
P.S. База на суммарных 3Тб на 3х дисках и 155 тыс файлов создается в течении 30 секунд. База занимает 1,2 Мб.
Мне кажется, или такое физически невозможно?
Емнип, она берет данные уже готовыми из каталога NTFS, потому все так быстро.
Если не индексировать всякие мета-теги, и содержимое файлов, а только пути, то вполне возможно.
Matolch прав. А что еще нужно для быстрого поиска файлов? Пробовал кучи утилит, сканирующих содержимое — база получалась по 3-5Гб и поиск по ней был не такой уж и быстрый. Лучше грамотно называть документы хотя бы парой точных слов, тогда и мароки меньше.
UFO landed and left these words here
а что значит «виндовый поиск из семерки был удален»? как удаляли?
UFO landed and left these words here
А как интегрировали Everyhing с Total Commander-ом?
UFO landed and left these words here
Согласен на 100%, безумно рад, что услышал про неё как-то около года назад, великолепная программа, если кто не видел — рекомендую.
1. А для диалогового окна «Сохранить как» утилита работает? Просто очень часто бывает ситуация, когда из браузера (или еще откуда-нибудь) хочешь сохранить какой-то файл, а он в качестве дефолтной папки показывает совсем-совсем не то место, которое нужно. И приходится долго и упорно выбирать место сохранения. Если бы тут нажать горячую клавишу и выбрать каталог, потом щелк! — и в этот каталог переходит также диалог «Сохранить как»…

2. И второе пожелание: для Far Manager поддержка. Можно, например, так сделать: после выбора папки утилита может «печатать» в последнее активное окно Far-а (если это оно) последовательность: «cd <директория>», он тогда перейдет в эту директорию активной панелью.
1. Нет, к сожалению, не работает. Но идея отличная--как будет время, постараюсь сделать. Мне этого тоже не хватает)
2. Тоже классная идея, спасибо, и тоже, надеюсь, через какое-то время добавлю
Солидарен c DmitryKoterov, но с некоторыми дополнениями:
1. Не только для Сохранить, но и для Открыть пригодилось бы. Раньше использовал FileBoxExtender, он сохранял историю посещений в подобных диалогах + «избранное», но в 7-ке оно уже не работает так как хотелось бы.
2. тоже хотелось бы видеть поддержку FAR'а, но с учетом возможности запуска оного через ConEmu.
3. Возможность хоткей повесить не только на ctrl+alt+shift+[A-Z], но и на F1-F12 + другие кноповки(ScLok, PrtSc, Break, etc)!!!
Спасибо за пожелания--очень дельные. Займусь этим в первую очередь.
2. Есть отличный плагин: AltHistory, которого так не хватает в TotalCmd (хотя может что-то уже поменялось). Не совсем, чтобы аналог сабжу, но история на 10000 элементов (отдельно папок, команд и просмотров/редактирований) вполне себе позволяет находить даже весьма старые свои похождения по дискам. Поддерживает поиск по части слова: например «ws*32» найдет «c:\windows\system32».

И еще не могу упомянуть замечательнейший плагин NamedFolders: позволяет переходить в папки по легко запоминающемуся, краткому, но соответствующему логике пользователя, символьному имени. Переходы выполняются вводом команды «cd:name». Префикс «cd:» вводится нажатием шортката Shift+Двоеточие. Мои примеры: «cd:sys32» — windows\system32, «cd:pf» — program files, «cd:md» — «My Documents». Преимущества над шорткатами типа Ctrl-1, Ctrl-2 два: ссылок может быть больше десяти; имя — краткое, но в то же время достаточно осмысленное, а не абстрактная цифра или буква.
Вам нужно добавить в выпадающий список номера, или что-то подобное, чтобы можно было выбрать каталог не используя мышки. Возможно, нужно сделать сочетание Ctrl+номер/буква, чтобы ввод чисел тоже был возможен.
Без мыши и сейчас возможно (в описании присутствует)--клавишами вверх-низ и энтер. Хотя ваша идея интересная--но цифры могут загромождать интерфейс.
А чем InnoSetup так уж лучше Wix? Вроде почти по всем пунктам они похожи.

1. свободный и бесплатный

Прямо как Wix.

2. модульный (не привязан к технологиям Microsoft)

Разве он с windows installer никак не связан?

3. прозрачный (редактируется только текстовый скрипт, никакого визуального программирования, как, например, в Visual Studio Installer)

Wix то же самое.

4. как следствие, файлы инсталлера не пересоздаются при каждом изменении—нет проблем с системой контроля версий

Если я правильно понял, файлы инсталлера это вы скрипт имеете ввиду. Тогда тоже как в Wix.

гибкий (поддерживает скриптование с помощью Pascal/Delphi). До этого Delphi я видел последний раз лет 7 назад, на первом курсе института, но преимущества InnoSetup этот недостаток с лихвой компенсируют

Для Wix custom actions можно писать на c#, так что тут он даже лучше.

ах да, он волшебным образом создает один файл установки для x32 и x64 версий

Вот это, конечно, круто. Но с другой стороны если мы говорим о .NET приложениях, то в любом случае функционал выбора x86 или x64 пакетов должен находится в bootstrapper'е (как и функционал установки фреймворка нужной версии).
Разве он с windows installer никак не связан?
нет, не связан.

// Для данного конкретного приложения не критично, но в контексте обсуждения инсталяторов вообще — это важно:
Для Wix custom actions можно писать на c#, так что тут он даже лучше.
Означает ли это, что у клиента должен быть .NET ??
нет, не связан.
Ммм, значит удаление через стандартный механизм «Панель управления» — «Удаление программ» не предусмотрено? Или я туплю где-то?:)

Означает ли это, что у клиента должен быть .NET ??
Да, означает. Думаю для установки .NET приложений это само собой разумеется, и никаких проблем не вызовет. Все равно фреймворк будет заранее установлен с помощью bootstrapper'а.
В то же время custom actions можно писать и на C++, в таком случае никаких ограничений нет.
Ммм, значит удаление через стандартный механизм «Панель управления» — «Удаление программ» не предусмотрено? Или я туплю где-то?:)
Тупишь ;-) Чтобы программу можно было из панели управления удалять — нужно ключик в реестре создать, больше ничего не надо. Inno setup с этой задачей справляется ;-)

В то же время custom actions можно писать и на C++, в таком случае никаких ограничений нет.
Так, я правильно понимаю, что эти custom actions — находятся во внешнем исполняемом файле и соответственно не имеют доступа к внутреннем структурам инсталятора?? Внутренний скриптовый язык в Wix'е есть?
Например в Inno Setup я могу нарисовать дерево с чекбоксами и произвольным образом обработать выбранные пользователем узлы, в Wix'е такое возможно?
Тупишь ;-) Чтобы программу можно было из панели управления удалять — нужно ключик в реестре создать, больше ничего не надо. Inno setup с этой задачей справляется ;-)

А, ну ок:) Я просто почему-то думал, что для того, чтобы программа там появилась, нужно чтобы она была прописана в таблицах Windows Installer'а. Уж не знаю с чего я это взял:).

Например в Inno Setup я могу нарисовать дерево с чекбоксами и произвольным образом обработать выбранные пользователем узлы, в Wix'е такое возможно?

Можно конечно. В Wix есть несколько стандартных диалогов, но можно добавлять свои или кастомизировать стандартные. Для разметки диалога используется XML, в нем описывается, какие события триггерятся при определенных действиях пользователя. На эти события можно в XML вешать обработчики. Причем не обязательно какой-то скрипт, в большинстве случаев можно обойтись стандартными действиями.
В Wix надо использовать богомерзкий XML и указывать каждый файлик в дистре.
Ну да, а что в этом плохого?:)
Порядка больше получается.
На 241-м файлике насчет порядка закрадываются смутные сомнения.
XML же малопригоден для чтения и редактирования человеком.
Да дело вкуса, на мой взгляд xml вполне читабелен.
А чем InnoSetup лучше Wix? По описанию они очень похожи.

свободный и бесплатный
Прямо как и Wix.

модульный (не привязан к технологиям Microsoft)
Всмысле не привязан? Windows Installer не используется?
Wix также модульный, позволяет использовать разного рода плагины, и писать их самому.

прозрачный (редактируется только текстовый скрипт, никакого визуального программирования, как, например, в Visual Studio Installer)
Также как и Wix.

как следствие, файлы инсталлера не пересоздаются при каждом изменении—нет проблем с системой контроля версий
Само собой также как и Wix.

гибкий (поддерживает скриптование с помощью Pascal/Delphi). До этого Delphi я видел последний раз лет 7 назад, на первом курсе института, но преимущества InnoSetup этот недостаток с лихвой компенсируют
Wix позволяет писать custom actions на c#, что даже проще.

ах да, он волшебным образом создает один файл установки для x32 и x64 версий
Вот это круто, конечно. Но, с другой стороны, если мы говорим об установке .NET приложения, то в 99.99% случаев мы используем для установки bootstrapper (чтобы проверить наличие и установить сам фреймворк), так что обычно в bootstrapper'е же проверяется разрядность винды, и запускается нужный пакет.
Дорогой модератор, прошу тебя удалить это сообщение:).
Мой первый комментарий появился через 5 минут после отправки, прошу прощения за дубль.
— Error
— You must be logged in as an administrator when installing this program.
— ОК
— Сделайте в инсталлере опцию установки в каталог пользователя.
Или просто дайте ссылку на zip-архив с программой. Я же не думаю, что ваша утилита что-то в реестр пишет или еще что-то, права администратора требующее, выполняет?
(Unicode) NSIS тоже отличный инсталлер, кстати говоря.
Встроенный язык только полный отстой и прямые вызовы подпрограмм из dll, не оформленных как NSIS-плагины, делать не умеет.
Утилитка хороша, хотя в FAR'е я нахожу то, что мне нужно, чем NavigatorAssistant. Не холивара ради спрошу (ибо зацепило) — с чего вдруг .NET и WPF тормозные? В сравнении с чем? Имхо заявление весьма популистское и необоснованное. Тормозит не .NET, а код который на нем пишут
Ну как вам сказать… Для Win32 использовать девок (DevExpress) можно без раздумий о производительности, а для WPF эти же контролы добавляют ощутимые тормоза при старте.
Я года 3-4 до этого писал на .net (и сейчас пишу, как можно заметить :-) ), и тоже думал, что это правда.

Но все-таки это ненормально, когда пустое приложение на WPF поглощает 40-60 мб оперативной памяти сразу же (можете проверить, создав пустой проект в Visual Studio). Я пользуюсь еще классной утилитой Manic Time--с ней такая-же беда. Это что касается памяти.

Jit компиляция медленная--с этим даже Рихтер согласен (потому я добавил прекомпиляцию ngen в инсталлере, так же делает и Paint.Net, и Visual Studio, и Sql Server Management Studio).

Сборка мусора, я уверен, медленная. Есть вот такой open-source проект для моделирования гидродинамики (на C++): www.palabos.org/. Так вот, в нем _нигде_ не пользуются виртуальными функциями, только шаблонный полиморфизм, потому что виртуальные функции--это медленно (это я сам замерял тестами в своей программке для CFD). А garbage collection--это невероятно медленно.
Наверное, стоит уточнить — медленна прежде всего сборка мутабельного мусора. Для иммутабельных данных ее вполне можно сделать быстрой, что функциональные языки (откуда сборка мусора и пришла в мейнстрим) и показывают.
Я не вполне понимаю вас, к сожалению. В .Net сборка, по-моему, одинакова для любого типа мусора: три поколения, проход по ссылкам до стека (roots), очередь freachable, и т.п. И все эти манипуляции занимают какое-то время.
Я не про .NET — это императивная платформа, со всеми вытекающими.
А вот в том же функционально чистом хаскеле работа с кучей куда быстрее, чем в .NET, но условием служит жесткая гарантия неизменяемости львиной доли данных.
Дотнету же, как и яве, иногда приходится вспоминать о протекающих абстракциях и оптимизировать код под сборщик мусора.
Реквестирую возможность поиска нескольких папок по частям пути.
Я точно знаю, что у меня есть куча папок ZZZZ и искать просто по части имени ZZZZ мне не удобно (over 9000 results). При этом я точно знаю некоторые части пути к нужной папке ZZZZ, хотелось бы применить это знание.

Напрмер, при полных путях типа:
\works\aaaaaaa\bbbbbbb\zzzz
\works\ccccccccc\ddddddd\zzzz
\works\eeeeeee\uuuuuuu\zzzz
Очень хотелось бы чтобы я мог найти третий вариант набирая что-то вроде «wo*\eee*\*\zz», т.е. фильтрацию вариантов по маскам, а не только по левой части.

Но сейчас у меня так не получается :(

Когда будет возможность попробую сам допилить такую возможность, но кода это призойдет даже не представляю…
Да, я думал над такой возможностью, но решил пока не реализовывать--сохранить время для основного функционала. И я пока не решил, стоит ли оно того: если набирать такие сложные пути, то сам смысл использования утилитки теряется--проще зайти в эксплорер и дойти до нужной папки.

Но спасибо за фидбек!
Не знаю. Для меня это как раз основной юзкейс был бы. Бродить по папкам в проводнике в поисках нужной, даже если знаю как туда папасть, занимает непростительно много времени. Возможно я делаю что-то неправильно, но у меня обчно примонтировано до 15 разделов в которых очень много папок с довольно большой вложенностью, поэтому процесс навигации по ним утомляет. Думал нашел таблетку, но видимо придется готовить ее самому. Спасибо за платформу. ;)
Я буду только рад, если вы допишете этот функционал сами (нужно поменять только один класс, притом покрытый тестами) :-). А может быть, и у меня дойдут руки до этого--но не в ближайшее время.
Попробуйте Everything из комментов выше, там есть поиск с ипользованием полноценных регэкспов.
Замечу, что в холиваре средств разработки инсталляторов нативность таких средств как Wix и Install Shield всегда являлась огромным плюсом, потому как иначе получить для приложения логотип «Certified for Windows» просто невозможно.
Использовать ради столь небольшого UI WPF мне кажется диким оверхедом, именно из-за тормозов на старте, от которых увы никуда не деться. Именно поэтому пишу софт с простым UI на WinForms, хоть и обожаю WPF.
Откровенно говоря, с WPF я преследовал еще и корыстный интерес--попробовать его после прочтения книжки и тестового проекта. Но теперь вынужден согласиться с вами--на WinForms было бы разрабатывать быстрее и проще, и само приложение было бы легковесней.

Мне показалось, что WPF, мягко говоря, все еще далеко не зрелый: многие вещи даже из WinForms не поддерживаются (например, отключение кнопок minimize и maximize в окошке); оказалось, что если в списке (ListBox) поставить width=auto, то ширина рассчитывается по _видимым_ элементам--то есть при скроллинге она может меняться, и сам скроллинг безумно медленный--пришлось ставить костыли. И миллион таких вещей.

Model-View-View Model даже для такого маленького приложения оказался недостаточным.
Угу — если лого нужен, то аргумент железный.
А вот если не нужен — то Install Shield пугает нехилой платностью, а Wix — челябинской суровостью.
Может я какой-то неправильный, но вдоволь поработав с nsis и Wix, при возможности я выбираю последний. Декларативность Wix требует больше времени для вхождения, но хорошо себя окупает.
Если выбирать между этими двумя, то конечно Wix лучше. NSIS — де-факто язык ассемблера.
Но я предпочитаю InnoSetup — нормальный язык, в меру декларативные описания, легкий подхват процедур из dll.
Функциональщину очень уважаю, но боже упаси, без xml.
1. после установки она сразу нагло полезла сканировать все и вся, благо у меня не терабайты… предлагаю при первом запуске выдавать запрос на «контролируемые» диски/папки.

2. явно не хватает пункта настроек ExcludeFolders. при попытке добавления пути в Exclude template получаю весьма информативное сообщение «Exclude folder templates do not represent correct regular expressions»

p.s. а вообще идея отличная, пока оставил, возможно приживется.

а может и не приживется, имхо выжирание от 90 до 130 метров памяти постоянно запущенной программой это уже слишком, а ведь это даже не наглая рыжая морда, а изредка нужный ускоритель переходов…
Да, это действительно немало, я согласен)

Выше в комментариях я писал, что частично это из-за wpf.

Частично из-за того, что garbage collection не выполняется часто (на самом деле программа потребляет около 70 мегабайт), а каждый поиск добавляет 0-10 мегабайт (в зависимости от числа совпадений) (в следующих версиях я собираюсь запускать сборку мусора принудительно).

И главное--кэш всех папок занимает очень много места, 40 мегабайт на моем компьютере (его можно оптимизировать и сократить в два раза, и даже больше), но для первой версии я решил этого не делать--хотелось посмотреть, понадобится ли она вообще кому-нибудь.
Делаем мелку пакость
private bool ReadFullCache(bool appRunOnStartup) {
return true; // а вот и не будем мы ничего читать )
в результате развернутое из трея приложение занимает 11 метров… остальные 60 как понимаю уходят на in-memory кэш всех папок. а нужен ли он такой? возможно имеет смысл сваливать все это добро в некое хранилищие(не xml) и выгребать поиском по мере необходимости. постараюсь в ближайшие дни провести пару экспериментов по этому поводу.
А подскажите, какой путь вы вводите в «Exclude template»? (предполагается, что там будут не полные пути а-ля C:\Windows, а имена папок («Windows») или шаблоны имен папок («Win.*»)).
Хочется иметь возможность ввести именно полный путь. Некоторые имена папок(backup, client, server) дублируются, а исключить хочется именно необходимые. Есть конечно вариант именовать папки нужным образом, но как-то не по фэн-шую :)
Only those users with full accounts are able to leave comments. Log in, please.