![]() |
Нужен поиск файлов в директории
Здравствуйте! Мне нужно сообразить программку, которая ищет текстовые файлы в директории, в которых есть текст, указанный в строке для поиска. (Типа как в Windows поиск). Хоть намекните с чего начать.
|
Re: Нужен поиск файлов в директории
Вроде бы это можно сделать с помощью API функции, FindFirstFileExA(), правда, сейчас не помню у неё входных параметров.
|
Re: Нужен поиск файлов в директории
Цитата:
Эта функция ищет первый файл в директории: Код:
HANDLE FindFirstFile(Код:
BOOL FindNextFile(Код:
BOOL FindClose(Вот пример юзания этих функций (из MSDN): Код:
The following example calls FindFirstFile, FindNextFile, and FindClose to list the files in a specified directory.Код:
int __fastcall AnsiPos(const AnsiString& subStr) const; |
Re: Нужен поиск файлов в директории
Цитата:
|
Re: Нужен поиск файлов в директории
Цитата:
|
Re: Нужен поиск файлов в директории
Добрый день.
Мне когда-то помогла статья связанная с поиском текста в файле http://netcode.ru/cpp/?lang=&katID=3...D=30&artID=272 |
Re: Нужен поиск файлов в директории
Спасибо, ребята, я уже сделал. Совсем не так правда. Может и позорно, но я все равно не себе.
Делал с помощью DirectoryListBox, FileListBox из вкладки Win3.1 и Memo. |
Ответ: Нужен поиск файлов в директории
Попробуй через стандартные сишные функции findfirst, findnext
|
Ответ: Нужен поиск файлов в директории
HANDLE FindFirstFile(LPCTSTR lpFileName,
//имя файла(ов) который(е) ищем, можно использовать маску (*,?) LPWIN32_FIND_DATA lpFindFileData //структура которая будет содержит информацию о файле);Если произошла ошибка, то функция вернет значение INVALID_HANDLE_VALUE, иначе handle поиска.Структура WIN32_FIND_DATA содержит следующие элементы: dwFileAttributes – атрибуты файла(директории): FILE_ATTRIBUTE_ARCHIVE 0x00000020 файл или директория архивные FILE_ATTRIBUTE_COMPRESSED 0x00000800 файл или директория сжаты FILE_ATTRIBUTE_DIRECTORY 0x00000010 каталог FILE_ATTRIBUTE_ENCRYPTED 0x00000040 файл или директория зашифрованы FILE_ATTRIBUTE_HIDDEN 0x00000002 файл или директория скрыты FILE_ATTRIBUTE_NORMAL 0x00000080 файл или директория без атрибутов FILE_ATTRIBUTE_READONLY 0x00000001 только чтение FILE_ATTRIBUTE_SYSTEM 0x00000004 файл или директория системные FILE_ATTRIBUTE_TEMPORARY 0x00000100 файл или директория временные ftCreationTime – время создания ftLastAccessTime – время последнего открытия ftLastWriteTime – время последнего изменения nFileSizeLow – размер файла cFileName – имя файлаДля продолжения поиска необходима функция FindNextFile:BOOL FindNextFile( HANDLE hFindFile, //handle поискаLPWIN32_FIND_DATA lpFindFileData //указатель на структуру с информацией о файле);Если нет ошибок функция возвращает не нулевое значение. Для нахождения текущей директорииможно воспользоваться функцией GetCurrentDirectory:DWORD GetCurrentDirectory(DWORD nBufferLength, //размер буфераLPTSTR lpBuffer //указатель на буфер );Теперь сам код, используется Visual C++ 6.0, создаем Win32 Console Application. #include <iostream.h> #include <windows.h> int main() { WIN32_FIND_DATA winFileData; HANDLE hFile; char szPath[MAX_PATH]; if(GetCurrentDirectory(sizeof(szPath),szPath)) { cout<<szPath<<endl; lstrcat(szPath,"\\*.*"); hFile = FindFirstFile(szPath,&winFileData); if (hFile!=INVALID_HANDLE_VALUE) { do { cout<<winFileData.cFileName<<endl; } while (FindNextFile(hFile,&winFileData)!=0); FindClose(hFile); } } return 0; } |
| Текущее время: 16:48. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2004 - 2026 NoWa.cc