С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
7 / 7 / 0
Регистрация: 21.12.2016
Сообщений: 152

Готовая DLL поиск файлов на диске по маске

26.10.2023, 15:24. Показов 664. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые участники форума, сам я не разбираюсь в С++, переходить пробовал, но понял, что уже поздно, мозг стар.
Хочу спросить или попросить, может у кого-то есть готовая библиотека DLL поиска всех файлов на диске по маске, завалялась, или может в интернете где ссылка есть, или может кого-то не затруднит сделать, что бы после можно было её подключить к проекту на VB.NET. Буду крайне признателен!

Задача следующая:
в Функцию в библиотеке dll передаётся 2 параметра,
sDisk = "C:" - строковый, содержащий начальный путь поиска.
sMask = "*.*" - строковый, содержащий маску искомых файлов.

На выходе получаем строковый Массив, допустим sFiles() - в котором лежат полные пути ко всем файлам на диске.
В формате: "C:\Windows\System32\explorer.exe"

Название функции на Ваше усмотрение.

Почему я выбрал именно "С++" - из-за скорости обработки, думаю вряд ли какой либо язык обойдёт по скорости "С++".
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.10.2023, 15:24
Ответы с готовыми решениями:

Поиск файлов по названию (маске) на диске
Перелазил интернет. Может плохо ищу. Не могу найти специальную функцию для поиска файлов на диске по названию. Есть решения на другие...

Как сделать быстрый поиск файла по маске на всем диске
Нужен быстрый поиск файлов по маске exe файлов на диске.

Поиск файлов по маске
Всем доброго времени суток, подскажите, как осуществить поиск файлов по маске в связке c++ и Linux?

9
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
26.10.2023, 19:51
Почему не делать это средствами VB?
0
7 / 7 / 0
Регистрация: 21.12.2016
Сообщений: 152
26.10.2023, 20:14  [ТС]
nmcf
Цитата Сообщение от nmcf Посмотреть сообщение
Почему не делать это средствами VB?
Цитата Сообщение от Memfivosfey Посмотреть сообщение
Почему я выбрал именно "С++" - из-за скорости обработки, думаю вряд ли какой либо язык обойдёт по скорости "С++".
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
26.10.2023, 22:19
Поиск всё равно будет идти средствами ОС.
0
694 / 304 / 99
Регистрация: 04.07.2014
Сообщений: 851
26.10.2023, 23:20
Цитата Сообщение от Memfivosfey Посмотреть сообщение
Почему я выбрал именно "С++"
Скорость диска намного меньше реализация на C++, VB, Python.

подключить к проекту на VB.NET.
А тут вообще не особо влияет какой ЯП использовать. Всё будет работать внутри .NET и для него компилироваться. Уже внутри .NET есть достаточно инструментов для вашей задачи. Так что ищи ".Net search files by mask"
0
7 / 7 / 0
Регистрация: 21.12.2016
Сообщений: 152
27.10.2023, 04:56  [ТС]
Цитата Сообщение от AlexVRud Посмотреть сообщение
Скорость диска намного меньше реализация на C++, VB, Python.
Не понял Вас?! Что значит на много меньше?

Как мне достичь высокой скорости чтения файлов с Диска?

AlexVRud, есть такая программа UltraSearch Professional от JamSoftWare, она ищет файлы на диске. НЕ СОЗДАЁТ БАЗУ! Написана на С++. Скорость у неё высочайшая, быстрее не находил. ~8 000 000 обрабатывает около 2-7 минут. Выдаёт список файлов с путями и датами создания. Я понимаю, что её скорости я вряд ли достигну, но рекурсивный поиск ~180 000 файлов за 5 минут, это очень медленно. Я почитал, что С++ при компиляции, достигает более высокой скорости. Может тогда нужно писать подобное на Борланде?
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
27.10.2023, 06:12
Цитата Сообщение от Memfivosfey Посмотреть сообщение
Скорость у неё высочайшая, быстрее не находил. ~8 000 000 обрабатывает около 2-7 минут. Выдаёт список файлов с путями и датами создания. Я понимаю, что её скорости я вряд ли достигну, но рекурсивный поиск ~180 000 файлов за 5 минут, это очень медленно.
У меня на C# код из вашей предыдущей темы при первом запуске обработал ~500000 файлов в папке за ~2 минуты, а при повторном запуске ту же самую папку за 16 секунд, видимо система что-то за кэшировала и повторное получение списка файлов происходит в разы быстрее...

Без вывода имен файлов в консоль (просто подсчет) та же самая папка обрабатывается вообще меньше чем за 2 секунды...

Как вы проводили свои замеры?
0
7 / 7 / 0
Регистрация: 21.12.2016
Сообщений: 152
27.10.2023, 08:13  [ТС]
Цитата Сообщение от Someone007 Посмотреть сообщение
У меня на C# код из вашей предыдущей темы
Вы имеете ввиду свой код? На C# который вы мне предложили? Который я не смог запустить у себя? Или тот код, что я выложил в первом посте темы?

Возможно ваш код, который вы предложили и был бы для меня лучшим решением в данный момент, но я не смог его у себя запустить, ошибку я вам писал, Студия говорит про устаревшую функцию: Ошибка BC30668 "FileSystemEntry" является устаревшим: "Types with embedded references are not supported in this version of your compiler."

Других рабочих вариантов кода в моей предыдущей теме попросту нет, кроме Рекурсии, которую предложил Тим70
В его проекте рекурсии - есть таймер, который отсчитывает время. На него и ориентировался. Конечно этот процесс можно чуток ускорить, если отключить визуализацию ListBox на время наполнения данными и убрать ProgressBar, но сильно это ситуацию не меняет. А мне после этого нужно получить MD5 со всех найденных файлов.

С другими вариантами, через API и использование функций Directory.EnumerateFiles или Directory.GetFiles., я так вопрос и не решил, как обойти заблокированные папки и файлы, а так же сим.линки.

Цитата Сообщение от Someone007 Посмотреть сообщение
повторное получение списка файлов происходит в разы быстрее...
- я в курсе этой ситуации, но если условия изменятся, то поиск снова будет медленным как в первый раз.

Рекомендую скачать и посмотреть UltraSearch Professional от JamSoftWare просто для понимания. Программа просто великолепна в своей сфере. - Это не в коем случае не реклама. я просто искренне удивлён, как они достигли такой скорости поиска.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
27.10.2023, 08:49
Цитата Сообщение от Memfivosfey Посмотреть сообщение
Возможно ваш код, который вы предложили и был бы для меня лучшим решением в данный момент, но я не смог его у себя запустить, ошибку я вам писал
Я неоднократно написал что требуется .NET Core 2.1 и выше, на устаревшем .NET Framework любой версии этот код запустить невозможно...
0
Just Do It!
 Аватар для XLAT
4201 / 2656 / 654
Регистрация: 23.09.2014
Сообщений: 8,949
Записей в блоге: 3
27.10.2023, 11:47
Цитата Сообщение от Memfivosfey Посмотреть сообщение
sMask = "*.*" - строковый, содержащий маску искомых файлов.
реализация маски:
https://www.cyberforum.ru/post15094041.html
https://www.cyberforum.ru/post16742802.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.10.2023, 11:47
Помогаю со студенческими работами здесь

Поиск файлов по маске
Здрасте, у меня проблема с кодом. Он должен искать все файлы по маске xls, xlsx в той папке где лежит скрипт. Допустим в папке 4 файла: 1...

Поиск файлов по маске
Надо найти файлы по маске типа: 123456. txt, 1243567.txt, 56745.txt , 1123119.txt и т.д. Пробовал применять такую маску: .txt не...

Поиск файлов по маске
Нужно найти файлы по маске. Маска и каталог передаётся через параметры. Файлы ищутся также в подкаталогах. import java.io.*; import...

Поиск файлов по маске
Возможно ли сделать так ,чтобы программа сканировала диски и нашла файлы в формате .jpg ?

Поиск файлов по маске
Как реализовать поиск файлов по маске "*.txt"? Файлы могут быть в любой папке диска C: или даже D:


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru