|
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
|
|
Поиск с консоли30.09.2009, 21:42. Показов 11721. Ответов 42
Метки нет (Все метки)
вот решил прогу писать,которая ищет на компе все файлы с расширением doc,и все в них удаляет и добавляет звездочки...я только не знаю эту функцию поиска,помогите пожалуйста,надо найти все файлы,и записать их адреса в чар,чтобы потом пользовался с чаром как file_name, наверно понятно объяснил
![]() если возможно то поболше комментарий,ведь с этой функцией в жизни не работал буду благодарен
1
|
|
| 30.09.2009, 21:42 | |
|
Ответы с готовыми решениями:
42
Поиск символа на консоли
Поиск максимального числа в консоли |
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
|
| 01.10.2009, 09:31 | |
|
МедведЪ, На всякий случай
0
|
|
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|
| 01.10.2009, 09:40 | |
|
в общем делай что думаешь и думай что делаешь !!!
0
|
|
|
|
||||||
| 01.10.2009, 12:21 | ||||||
Сообщение было отмечено как решение
Решение
Вот консольная програмка для поиска файла в директории по его расширению....
6
|
||||||
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|
| 01.10.2009, 12:32 | |
|
Юоа, хорошая программа, сохраню для досконального изучения.про справочник не забыл, недавно говорили?
0
|
|
|
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
|
|
| 01.10.2009, 15:44 [ТС] | |
|
easybudda, блин причем мне тут это?
Добавлено через 32 секунды -=ЮрА=-, а что то попроще нету?
0
|
|
|
|
|
| 01.10.2009, 16:13 | |
|
Что именно упростить?Можно диалог выбора каталога убрать и вводить каталог с клавы или тектового файла, а вот алгоритм поиска файлов я думаю никак проще и не сделать (утверждать не стану
)...Тут наверно более опытные програмеры уже должны помочь...
0
|
|
|
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
|
|
| 01.10.2009, 17:27 [ТС] | |
|
-=ЮрА=-, мне нужен только поиск,ненадо чтобы выводлилось все это.
0
|
|
|
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
|
|
| 09.10.2009, 23:19 [ТС] | |
|
-=ЮрА=-, все еще ответов нету?
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||||||
| 08.11.2009, 22:41 | ||||||
|
Взялся за анализ исходника. Там есть куда дорабатывать. Так, имеем допустим, директорию C:\proba, в которой, в свою очередь есть 5 (к примеру) директорий без файлов с расширением exe
Предположим также, что мы ищем файлы именно с таким расширением. Тогда вывод будет таким.
1
|
||||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||||||
| 09.11.2009, 02:38 | ||||||
|
МедведЪ, ты просил. Упрощённый вариант проги -=ЮрА=-
Потом, я закомментил возврат короткого пути. В тексте я всё это пометил. Вроде остальное правильно. Тебе вопрос: скажи пожалуйста за константу FILE_ATTRIBUTE_DIRECTORY Какова её роль? Не могу понять. Спасибо. Добавлено через 1 минуту Да ещё. Кто будет использвать- о заголовочнх файлах и перетипизации данных заботьтесь сами, я такие мелочи даже не упоминал. Добавлено через 8 минут И второй вопрос Юра, ты располагаешь сведениями, в каком порядке ищутся файлы?
1
|
||||||
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|
| 09.11.2009, 09:06 | |
|
хм, странно, я, конечно, не вникал особо, но Юра выкладывал уже этот код некоторое время назад, за что ему большое спасибо.
Я успешно воспользовался данным примером, сейчас полез и проверил ищет все файлы (сделал в коневой папке 3 папки и в каждой из этих трёх ещё по несколько и все файлы нашлись.) Там ведь рекурсивный вызов GetFileList.
1
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||||||||||||||||
| 09.11.2009, 12:15 | ||||||||||||||||
|
Так искать-то, он, может, и ищет, а ты попробуй создать пустую папку C:\proba и в ней создай пять папки proba_1 proba_2 proba_3 proba_4 proba_5 и наполни их каким-нибудь содержимым- например, текстовыми файлами. Или оставь пустыми, это неважно.
А потом попробуй найди в папке C:\proba файлы, которых в ней заведомо нет и во вложенных папках тоже нет. И посмотри на вывод ...И это. Перед заходом в каждую директорию соответственно изменялся (увеличивался путь) директории
А восстанавливать его надо. Отнимать то есть имя директории, поиск в которой мы только что закончили. Так что вот. Добавлено через 12 минут И вывод выложи, если можно. Добавлено через 22 минуты Я те больше скажу- не поленись, помести в папку proba_5 файл *exe и попробуй его найди в папке C:\proba Не найдёт. Догадываешься, почему? Потому, что в проге не присутствует строки
1
|
||||||||||||||||
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|
| 09.11.2009, 12:22 | |
|
с выводом хуже, честно признаюсь не знаю как с консоли его содрать.
да и вывод там смешан с моей отладкой, но результат у меня такой: как вы, kravam, и говрили сделал кучу пустых вложенных папок запихал туда разное и искал чего нет соответсвенно ничего не нашёл. добавил фаил который попадает в условия по иска и нашел его. однако, наш диалог не принесёт результата, так как я уже не помню редактировал ли я Юрины исходники или нет и выдрать их из моего проекта возможноти и желания не имею. одно тока скажу что работает данный блок в моем проекте правильно, покрайней мере в данном частном случае. я тоже заинтересован в создании правильного кода поиска файлов. Юра ты где? разреши вопрос.
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 09.11.2009, 12:36 | |
|
Проще будет скомпилить НЕПОСРЕДСТВЕННО Юрину программу. Ошибка в ней. А не в другой проге.
Ну, или дождаться Юру, я ему уже написал.
1
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||||||
| 09.11.2009, 19:39 | ||||||
|
МедведЪ, вот тебе ещё проще.
Вариант Юриной проги. Ничего вводить не надо. Забиваешь в исходник имя директории, расширение (обрати внимание на размер) и смотришь на вывод. Хочешь, звпускай из командной строки и перенаправляй в файл. Открыть надо в кодировке OEM (Она же MS DOS) В выводе увидишь исключительно имена файлов с полными путями. Всё! Ничего больше. Делай с ними, что хочешь.
2
|
||||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|||||||||||
| 11.11.2009, 07:38 | |||||||||||
|
Друзья!
Если кто пользуется вышеприведёнными прогами быстренько взяли и поправили исходник. Там ошибка есть, что у Юры, что у меня, я щас только нашёл. Вот эту строку
Если пропишем после if (как делали до сего момента), то тогда, если вдруг натыкаемся на системную директорию или файл, то FindFirstFile возвращает -1. Следовательно, всё, что выполнняется по условию (hFile!=INVALID_HANDLE_VALUE) не выполнится и в частности, не будет поставлен конец строки! А это значит, что по выходу из рекурсивной функции GetFileList в том месте, где мы восстанавливаем длину, она будет восстановлена неправильно. Я наткнулся на директорию System Volume Information, не обработал её таким образом, а потом , когда восстанавливал путь, он у меня восстанвился не как C:\ а как C:\Sys! Прибавились эти злополучные три байта, которые я не "отсёк" , не поставил ноль сюда С:\System Volume Informationвот в это место надо ставить ноль!\*.* Поэтому поправьте так:
1
|
|||||||||||
|
|
|
| 11.11.2009, 10:10 | |
|
Медведъ, я не могу понять что именно тебе не надо выводить?Результатом поиска файлов являются их пути или хэндлы, куда тебе их выводить в файл, сделать символьный двухмерный массив???В моей проге пути на экран выводятся...
Что же касается поиска то цикл do while в программе и выполняет поиск...FindNextFile - это функция поиска файла для каталога в котором FindFirstFile вернула хэндл первого файла Детально сформулируй задание, помогу Лучше даже нарисуй интерфейс и как образец сюда выставь, а я попробую его реализовать...Добавлено через 9 минут kravam , если у тебя файловая система NTFS то действительно прога на System Volume Information споткнётся, а вот на фате всё работает, ну а данную манипуляцию sPath[strlen(sPath) - strlen(strstr(sPath,"*.*"))] = '\0'; я делаю по следующей причине : ИмяКаталога\ -> припаиваем к нему "*.*" -> Выходит ИмяКаталога\*.* если в данном каталоге есть файлы то заходим в цикл в котором функция FindNextFile(hFile,&pFILEDATA) постоянно переинициализирует структуру WIN32_FIND_DATA pFILEDATA, а теперь если я бы не убрал данные символы "*.*" из имени каталога то получал бы такие пути ИмяКаталога\*.*\pFILEDATA.cFileName
0
|
|
|
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
|
|
| 11.11.2009, 10:10 [ТС] | |
|
-=ЮрА=-, Oo какой интерфейс...я же сказал,осущствить список по компу doc файлов(что уже есть) и изменить весь тет на "*"...этого то нет
0
|
|
| 11.11.2009, 10:10 | |
|
Помогаю со студенческими работами здесь
20
Отобразить в консоли:увеличить и уменьшить длину массива на заданное ранее из консоли число Как запустить программу из консоли без блокировки консоли? Клавиши F1-F12 в консоли, и работа с мышкой в консоли Вызов консоли для другой вкладки из консоли js Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|