Pull to refresh

Comments 78

В проводнике Windows7 если не ошибаюсь такое есть
UFO just landed and posted this 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 Мб.
Мне кажется, или такое физически невозможно?
UFO just landed and posted this here
Если не индексировать всякие мета-теги, и содержимое файлов, а только пути, то вполне возможно.
Matolch прав. А что еще нужно для быстрого поиска файлов? Пробовал кучи утилит, сканирующих содержимое — база получалась по 3-5Гб и поиск по ней был не такой уж и быстрый. Лучше грамотно называть документы хотя бы парой точных слов, тогда и мароки меньше.
UFO just landed and posted this here
а что значит «виндовый поиск из семерки был удален»? как удаляли?
UFO just landed and posted this here
А как интегрировали Everyhing с Total Commander-ом?
UFO just landed and posted this 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, а код который на нем пишут
*в FAR'e нахожу быстрее
Ну как вам сказать… Для 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.