Как сделать программу которая ищет файлы
Наверняка у любого из нас на диске со временем скапливаются файлы-дубликаты. Файлы в «Загрузках», которые вы скачали несколько раз, одинаковые фотографии и музыкальные композиции, лежащие в таких недрах, что до них просто не доходят руки. Избавиться от всего этого можно и вручную, но куда быстрее за вас сработают специальные утилиты, ищущие одинаковые файлы.
CCleaner
Платформы: Windows, Mac.
Цена: бесплатно, 24,95 доллара за расширенную версию.
dupeGuru
Программа ищет файлы как с одинаковыми или похожими названиями, так и с идентичным содержимым. Хорошо работает с музыкой и может отыскивать одинаковые музыкальные файлы, даже если у них разные теги. Кроме того, dupeGuru умеет сравнивать изображения, чтобы найти не только одинаковые, но и просто похожие фотографии.
Разрабатывается для Mac и Linux. Версия для Windows больше не поддерживается разработчиком, но её можно загрузить с официального сайта — она полностью работоспособна.
Платформы: Windows, Mac, Linux.
Цена: бесплатно.
SearchMyFiles
Продвинутое приложение для поиска файлов, которое, помимо прочего, может удалять дубликаты. SearchMyFiles обладает гибкими фильтрами, так что вы можете настроить поисковую выдачу так, как вам угодно.
Платформы: Windows.
Цена: бесплатно.
Gemini 2
Популярное приложение для Mac, которое ищет одинаковые или похожие файлы и показывает, в чём разница между ними. Копии в «Фото», в фонотеке iTunes — мимо Gemini 2 не пройдёт ничего. Разработчиками заявлен умный механизм поиска дубликатов, который запоминает, какие файлы вы оставляете, а что решаете удалить.
Платформы: Mac.
Цена: 19,95 доллара.
AllDup
Хотя AllDup бесплатна, она умеет немало. Ищет, удаляет, копирует и перемещает дубликаты файлов, в том числе одинаковые аудиозаписи с разными тегами. Присутствует гибкая настройка поиска. С помощью встроенного просмотрщика можно изучить файлы и выбрать, что именно удалять.
Платформы: Windows.
Цена: бесплатно.
Duplicate File Finder
Duplicate File Finder быстро и эффективно отыскивает файлы-копии. Предоставляет интересную возможность поиска дубликатов не только на жёстком диске, но и в локальной сети. Может работать с изображениями и музыкой, сравнивая как теги, так и содержимое. Функция предпросмотра поможет разобраться, что действительно удалить, а что оставить. К сожалению, в бесплатной версии довольно много опций недоступно.
Платформы: Windows.
Цена: бесплатно, 29,95 доллара за расширенную версию.
Total Commander
Универсальный файловый менеджер, который может сделать с вашими файлами что угодно. В том числе и найти файлы-дубликаты. Включить опцию поиска копий можно на вкладке с параметрами поиска, там же, где указываются другие атрибуты искомых файлов.
Платформы: Windows.
Цена: 43,9 доллара.
DupeGuru выглядит наиболее привлекательным вариантом. Он бесплатен, при этом предлагает все необходимые функции для избавления вашего диска от скопившегося барахла. Огорчает лишь тот факт, что разработка версии для Windows остановлена. Пользователям Windows, не желающим платить за коммерческие альтернативы, больше подойдёт AllDup. А CCleaner и Total Commander — это более универсальные и распространённые решения, которые, наверное, уже установлены у каждого.
Краткое содержание
Статья описывает механизм быстрого поиска файлов в UNIX. Он объединяет два метода компрессии данных с новой техникой поиска строк, и предназначен для быстрого поиска произвольных файлов. Код, интегрированный в стандартную утилиту find, производит поиск в предварительно созданной базе данных, обновляемой ежедневно. Это отличает его от обычного механизма поиска совпадений ключа с кандидатами, которые генерируются «на лету» из разбросанной (по диску) структуры директорий.
База данных путей к файлам является инкрементально-кодированным, отсортированным в лексикографическом порядке списком (иногда называемом «сжатым спереди» файлом), который также подвергнут обычному биграмному кодированию с целью получения эффективного сжатия. Коэффициент сжатия составляет от 5 до 6 по сравнению с обычным ASCII-представлением. Список сканируется с использованием модифицированного линейного поиска, специально приспособленного для инкрементального кодирования, при этом типичное время, затрачиваемое алгоритмом, на 40-50% меньше, чем обычный поиск.
Введение
Поиск файлов в компьютерной системе, или компьютерной сети, является сложным процессом. Пользователи UNIX могут осуществлять его различными способами, начиная с манипуляциями командами cd, ls и grep, до специализированных команд, таких как, разработанных в Беркли whereis и fleese, и до более распространённой юниксовой команды find.
К несчастью, fleece (из Беркли) ограничен домашней директорией, а whereis может искать только системный код и документацию, расположенную в стандартных местах.
конечно, может искать произвольные файлы, но очень медленно, так как использует рекурсивный спуск по всей файловой системе, безжалостно разбросанной по всему диску. Нетерпение побудило нас разработать альтернативный (по отношению к методу «ищите и обрящете») метод поиска путей к файлам.
Предварительные вычисления
Почему бы не построить просто статический список всех файлов в системе и искать по нему grep-ом? Типичная система, содержащая 20000 файлов, будет содержать 1000 блоков имён файлов, даже если сократить /usr до /u. Grep на нашей ненагруженной системе PDP-11/70 обрабатывает 30-40 блоков в секунду, и потребует полминуты на сканирование. Это неприемлемо для часто используемой команды.
Но если мы принесём небольшую жертву — невозможность поиска файлов возрастом меньше суток, то это не создаст больших проблем, так как тот, кто создал такой файл, и так, скорее всего, находится в пределах досягаемости, или, возможно, файл ещё не готов к использованию. Старые файлы, созданные другими группами пользователей, с другими соглашениями именования файлов — это наиболее вероятные кандидаты на поиск.
Сжатие
Для ускорения доступа для приложений, можно предложить использовать бинарный поиск или хэш-таблицу, но такие схемы не работают хорошо для частичного сравнения, если нам интересна только часть имени. Легко реализуется техника сжатия упорядоченных данных, известная как инкрементальное кодирование, которая была применена для сходной задачи сжатия словаря [Morris/Thompson, 1974]. В этом случае вычисляется наиболее длинный префикс предшествующего имени. Например:
Декодирование будет простым (объявления переменных опущены)
где math — функция, определяющая, содержится ли подстрока name в строке path.
Фактически, так как кодированный список примерно в пять раз короче некодированного, и декодирование производится очень просто, программа работает от трёх до четырёх раз быстрее, чем grep на текcтовом файле.
Ещё быстрее
Такой подход уже является полезным, но оставляет место для дальнейших усовершенствований. (Примечание: этот код используется в утилите find. Нет необходимости обременять UNIX ещё одной командой [и man-страницей], когда мы можем улучшить существующую аналогичную программу. К счастью, не существует вызова find с двумя аргументами, и мы можем заполнить пустоту без приукрашиваний:
Отметим, что код, приведённый выше, по-прежнему производит поиск по распакованному списку, хотя и в памяти, а не на диске. Этого можно избежать путём сравнения строки с подстрокой в обратном направлении. Пусть namend указывает на последний символ строки name, и заменим math на:
Это проще понять, рассмотрев три случая. Если подстрока находится полностью справа от cutoff, сравнение будет заканчиваться успешно. Если они перекрываются, cutoff становится «мягким» и сравнение продолжается. Если подстрока лежит полностью слева от cutoff, то совпадение было бы выявлено для предыдущих строк, а значит, мы можем не выполнять этот поиск! Технически, cutoff может быть перенесён на path немедленно после выполнения сравнения. Это условие опущено выше.
Двухъярусная техника
Можно избежать замедления поиска, вызванного обработкой символов шаблонов поиска. При этом мы обрабатываем часть имени, не содержащую метасимволы, и используем более медленную рекурсивную функцию amatсh внутри find. То есть,
где globchars устанавливается, если name содержат метасимволы. Пример использования шаблона поиска для простой команды man:
Дальнейшие улучшения
Продакшн-код утилиты find увеличивает степень сжатия ещё на 20-25% путём замены самых распространённых двухсимвольных сочетаний на непечатаемые ASCII-коды. ".c" и ".P" встречаются особенно часто.
Другие алгоритмы, реализующие другие компромиссы между временем и размером данных, например, алгоритм Хаффмана [Reghbati, 1981] не выглядят многообещающими: они всего лишь заменяют ограничение по производительности ввода-вывода ограничением по быстродействию.
Могут быть использованы методы сублинейного поиска Бойера-Мура (Boyer-Moore) [Boyer, 1977] или метод макромоделей [Storer/Szymanski, 1982].
В заключение нужно отметить, что мы провели сканирование 19000 имён файлов за несколько секунд, использовав 180 блоков и код на С, умещающийся на двух страницах.
Everything – бесплатная программа для мгновенного поиска файлов и папок по именам. Так как индексируются только имена файлов и папок (содержимое файлов не индексируется), поэтому поиск осуществляется мгновенно.
Рис.1 Интерфейс программы Everything
Программа адаптирована под операционные системы Microsoft Windows XP/Vista/7/8/8.1/10. Программа доступна для скачивания в портативной и обычной версиях.
Программа очень простая в использовании. Достаточно программу запустить и можно сразу вводить имя файла или папки для поиска.
Установка программы Everything
- Запустить инсталляцию программы
- В окне выбора языка оставить значение по умолчанию и нажать ОК.
Рис.2 Выбор языка программы Everything
- В следующем окне принять лицензионное соглашение
Рис.3 Принятие лицензионного соглашения
- В следующем окне Выбор папки установки можно оставить значения по умолчанию. При необходимости (например, если программы располагаются на другом разделе) указать другую директорию.
Рис.4 Выбор директории для установки программы Everything
- В первом окне Выбор параметров установки рекомендуется оставить значения по умолчанию. Но при необходимости можно изменить директорию для хранения данных и настроек программы Everything и параметры индексирования. Также эти параметры можно изменить и по окончании установки программы в ее настройках.
Рис.5 Выбор параметров установки программы Everything
- Во втором окне Выбор параметров установки также можно оставить значения по умолчанию.
Рис.6 Выбор параметров установки программы Everything
- По окончании установки программы, нажать кнопку Готово.
Рис.7 Завершение установки программы Everything
Рис.8 Создание ярлыка программы Everything
Работа с программой Everything
При первом запуске программы за секунды будет произведено индексирование имен файлов и папок, расположенных на всех подключенных дисках. При повторном запуске программы будет выполнено обновление индекса.
Чтобы найти какую-либо папку или файл достаточно в поисковой строке начать вводить название. По мере ввода информации программа автоматически будет предлагать варианты, которые удовлетворяют условиям поискового запроса.
Например, необходимо найти файл или папку, в названии которых есть 123.
Рис.9 Поиск в программе Everything
Далее для удобства поиска можно отсортировать файлы и папки по дате изменения.
Отдельные настройки программы
Выбрав в главном меню Поиск, можно указать по каким параметрам должен быть осуществлен поиск: Все (все файлы и папки, значение по умолчанию), Аудио, Архивы, Документы, Программы, Папки, Картинки, Видео.
Рис.10 Настройка поиска файлов и папок
Чтобы сузить область поиска, можно исключить скрытые и системные файлы и папки. Для этого необходимо открыть настройки программы (в главном меню программы выбрать Сервис > Настройки), перейти в раздел Исключения и установить флажки в чекбоксах Исключать скрытые файлы и папки и Исключать системные файлы и папки и нажать ОК. Также в данном разделе можно прописать конкретные папки или файлы, которые необходимо исключить из поиска.
Рис.11 Настройка исключений для поиска
Чтобы при каждом запуске программы, пока еще не была введена никакая информация для поиска, не отображались список всех существующих файлов, можно активировать настройку Скрывать результаты при пустой строке поиска. В настройках программы перейти в раздел Результаты и установить соответствующий флажок в чекбоксе.
Рис.12 Скрытие результатов при пустой строке поиска
При необходимости изменить цветовое оформление, нужно в настройках программы выбрать раздел Шрифты и цвета и настроить в соответствии с предпочтениями. Вернуть значения можно, нажать на кнопку По умолчанию.
Рис.13 Настройка цвета фона и шрифта в программе Everything
Рис.14 Результат изменения цвета фона и шрифта в программе Everything
Если часто применяются одни и те же поисковые запросы, результаты поиска, а также фильтры, можно сохранять запросы в закладки. Для этого необходимо ввести искомое слово в строке поиска программы, при выводе информации, в главном меню выбрать Закладки > Добавить закладку….
Рис.15 Создание закладки в программе Everything
Рис.16 Создание закладки в программе Everything
Удалить, создать или изменить ранее созданные закладки можно в главном меню Закладки > Упорядочить закладки….
Рис.17 Создание, редактирование или удаление закладок в программе Everything
Отдельные дополнительные варианты поиска
В данном разделе статьи будут приведены примеры поиска файлов с применением операторов, указанных в таблице ниже.
знак | оператор |
---|---|
пробел | AND |
| | OR |
! | NOT |
Если необходимо выполнить поиск по одному из нескольких условий, можно воспользоваться оператором OR (ИЛИ), используя знак | (вертикальная черта). Например, мне необходимо найти папки или файлы с именами лекция или лабораторная.
В окне поиска необходимо ввести лекция | лабораторная. В результате (Рис.18) показаны все файлы и папки с названием, в котором есть одно из заданных условий, либо все файлы или папки, где есть слово лекция, либо файлы и папки, где есть слово лабораторная.
Рис.18 Поиск файлов и папок с применением оператора OR
Если указать два слова без оператора OR, поиск будет осуществляться при условии наличия в названиях папок и файлов обоих слов.
Таким образом, если указываются несколько слов через пробел, применяется оператор AND (знак пробел), например, лекция лабораторная, будут найдены все файлы и папки, где одновременно будут присутствовать слова лекция и лабораторная.
Рис.19 Поиск файлов и папок с применением оператора AND
Если необходимо исключить какое-либо слово из поиска, необходимо перед условием поставить знак ! (восклицательный знак) (оператор NOT). Например, мне необходимо найти все работы по операционной системе Windows 10, чтобы не отображались работы по предыдущим версиям операционной системы, в поисковой строке я указываю windows 10 !7 !8 , в результате чего получаю список работ, в названиях которых есть windows 10, но отсутствуют работы, где в есть 7 или 8.
Рис.20 Поиск файлов и папок с применением оператора NOT
Если необходимо найти файлы .docx с одинаковыми именами, достаточно в поиске ввести dupe: .docx и будет выведен список всех дублирующийся документов формата .docx. По этому же принципу можно найти файлы с любым расширением, например, dupe: .mp3 или dupe: jpeg и т.д. Поиск дубликатов будет осуществлен по всему индексу, а не среди текущих результатов.
Рис.21 Поиск дубликатов файлов формата .docx
При необходимости поиска файлов и папок с одинаковыми именами без указания расширений, достаточно ввести в поле поиска namepartdupe:
Будет выведен список всех дублирующийся папок и файлов.
Рис.22 Поиск всех дубликатов файлов и папок
В начале статьи я писала о том, что программа осуществляет мгновенный поиск по именам файлов и папок. И с этим она справляется отлично. Но стоит также отметить, что возможен поиск и по содержимому с использованием поисковой функции content: Но так как содержимое файлов не индексируется, поиск осуществляется очень медленно. Поэтому данная программа не эффективна для такой задачи, а для поиска файлов по содержимому применяют другие программы, которые будут рассмотрены в следующих статьях.
Когда долго пользуешься компьютером, на нём может со временем скапливаться огромное количество информации (речь идёт о Windows) — различных программ, файлов. Не всегда удаётся запомнить, что и где находится, а новичкам в довесок ещё и, порой, трудно находить нужные программы. Чтобы не лазить по папкам вручную в поисках нужного файла или не искать нужные программы и инструменты Windows через специальную панель управления, можно воспользоваться встроенным поиском и быстренько найти нужную информацию или программу. В этой статье я покажу, как искать нужную информацию и программы на компьютерах с установленной операционной системой Windows (на примере Windows 7, Windows 8 и Windows 10).
В статье я рассматриваю для примера 3 вышеперечисленных системы, поскольку они на сегодняшний день являются самыми распространёнными. К примеру Windows XP и Windows Vista уже давно устарели и используются минимальным процентом пользователей.
Поиск в Windows 7
В Windows 7 поиск расположен в меню «Пуск» а также во всех окнах проводника.
Рассмотрим для начала самый доступный поиск, который быстрее всего открыть — поиск в меню «Пуск». Он расположен в самой нижней части этого меню:
Прямо там нужно лишь набрать имя нужного файла или программы целиком, либо частично (только начало, к примеру) и Windows попытается найти то что вы ищите.
Пример поиска программы
Предположим, вы хотите найти и запустить инструмент Windows для удаления программ. В Windows 7 он называется «Установка и удаление программ».
Чтобы найти этот инструмент, в поиске достаточно лишь набрать «программ» (1) и через несколько секунд появится список, где уже видно нужный нам инструмент (2):
Осталось только кликнуть по результату поиска и нужная программа откроется.
Также в этом окне видно инструменты «Программы и компоненты» и «Удаление программы». Это всё тоже самое.
Пример поиска файла или папки с файлами
Предположим, у меня на диске «С:» в библиотеке «Документы» есть файл с отчётом по работе, который называется «Отчёт за 2015 г.».
Чтобы найти этот файл через поиск достаточно также набрать часть названия, например «отч» или «отчет» и Windows попытается найти всё, что имеется с таким названием на вашем компьютере.
Вот, например, я набрал в поиске запрос «отч» (1) и был найден мой файл (2).
В Windows 7 открыть средство для поиска можно быстро при помощи сочетания клавиш: Win+F.
Поиск в Windows 8 и Windows 10
В Windows 8 и Windows 10 поиск информации по принципу ничем не отличается от того, что был в Windows 7. Всё отличие только лишь в интерфейсе операционных систем, поскольку в новых Windows он прилично отличается.
Как открыть поиск в Windows 8 и пользоваться им
Рассмотрим возможности поиска на примере Windows 8. Здесь также присутствует поиск через меню «Пуск». Кнопка поиска в этом меню расположена справа вверху (значок лупы).
Перед тем как что-то искать, вы можете выбрать область поиска, а именно — искать в параметрах, файлах, картинках или видео из интернета, а также — сразу везде. Для выбора области, нажмите область по умолчанию (1) и выберите нужную из списка (2). Если не знаете, где искать, ставьте «Везде», найдётся больше всего.
К примеру, я хочу найти и открыть панель управления Windows. Выбрал область «Везде» и ввожу «Панель управления». Снизу появляются результаты. То что было найдено в Windows отобразится в самых первых вариантах (1)?, перед чертой. После чёрточки идут варианты для поиска через интернет (3).
Если нажать на кнопку поиска (4) с иконкой лупы, то откроется более детальный список результатов, среди которых будут выведены и результаты поиска по сайтам в интернет.
Ещё один вариант открыть поиск: находясь на рабочем столе, наведите курсор мыши в правый нижний угол и задержите на пару секунд.
Справа появится панель, где вверху увидите кнопку поиска:
Всё работает точно также. Предположим, у на компьютере где-то лежит файл с названием «Список рабочих». Выбрав область поиска (в примере выбрано «Везде»), ввожу часть названия, например «список» (1). Ниже появляются результаты, среди которых будет и искомый файл (2), который можно сразу же открыть из этого списка.
В Windows 8 открыть средство для поиска можно быстро при помощи сочетания клавиш: Win+F.
Как открыть поиск в Windows 10 и пользоваться им
В Windows 10 поиск по умолчанию расположен на панели задач Windows:
Кликнув по этой кнопке, откроется окно поиска. В нижней строке (1) указываем поисковый запрос. Предположим, я хочу найти и открыть инструмент Windows для удаления программ с компьютера и поэтому ввожу в поисковую строку часть запроса «удаление» (1). Выше появятся результаты поиска, среди которых я вижу подходящий мне «Установка и удаление программ» (2).
Вы можете выбрать область поиска, кликнув по области, выбранной по умолчанию:
Из открывшегося списка вы можете выбрать какую-то определённую область Windows для поиска, например, выполнить поиск по фотографиям, по программам, документам и пр. Если хотите искать сразу по всем областям, выберите «Все».
Ещё один пример поиска. Предположим на компьютере где-то есть файл «Моя база». Ввожу в поиск часть названия, например «База» (1) и в результатах получаю то что мне нужно (2).
В Windows 10 открыть средство для поиска можно быстро при помощи сочетания клавиш: Win+S.
Поиск через «проводник»" в Windows 7, 8, 10
Бывает, что нет смысла искать файл по всему компьютеру, чтобы не тратить лишнее время, потому что файл поиск по всему компьютеру может занять длительное время, в зависимости от объёма информации на компьютере, и тем более вы примерно знаете, в какой папке или на каком локальном диске этот файл может располагаться. Для этого проще воспользоваться поиском по отдельной папке или локальному диску, т.е. через программу «проводник» Windows. Рассмотрим пример на базе Windows 7.
В Windows 8 и 10 поиск через проводник совершенно ничем не отличается!
Поиск в проводнике расположен справа вверху (1). Когда вы откроете какую-либо папку, то в строке поиска будет написано, где будет выполняться поиск (там, где вы сейчас находитесь). К примеру, сейчас у меня открыта папка «Program Files» (2).
Допустим, хочу найти папку «Drivers» в папке «Program Files», где сейчас нахожусь. Для этого в поиск справа вверху (1) так и пишу «drivers» или можно указать первые несколько букв (в случае если не помните полное название). Результаты будут появляться ниже (2).
Осталось прямо из результатов поиска открыть нужный файл, папку или программу!
Также иногда может быть полезным при поиске применять фильтр, например, искать файлы, папки и программы по определённому размеру, дате изменения. Когда вы вводите название того, что ищите, то режимы фильтрации появятся ниже:
Рассмотрим ещё пример.
У меня где-то на диске «С:» имеется файл по работе, под названием «Опубликовать на сайте». Зная, что файл расположен на диске «С:», мне нужно открыть проводник Windows, а затем в нём этот локальный диск. В поиске набираю начало названия файла «опублик» (1) и система находит мне нужный файл (2), указывая ниже место его расположения на компьютере.
Совет по поиску файлов. При поиске файлов в Windows, вы можете выполнять поиск по расширениям файлов. К примеру, если вы хотите отыскать все файлы с расширением .txt, то в поиске наберите *.txt. Где * будет означать, что будут искаться файлы с любыми названиями, но с расширением .txt.
Заключение
Пользуйтесь поиском Windows для быстрого открытия программ и файлов, которые у вас расположены где-то в глубине проводника. Так вы сэкономите время. Ну и конечно же, не стоит пытаться долго искать нужный файл или папку вручную по всему компьютеру, поскольку в первую очередь стоит воспользоваться обычным поиском.
Хорошего вам дня и отличного настроения! ;)
Сделай репост – выиграй ноутбук!
Каждый месяц 1 числа iBook.pro разыгрывает подарки.
- Нажми на одну из кнопок соц. сетей
- Получи персональный купон
- Выиграй ноутбук LENOVO или HP
Читайте также: