C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Дебетовая карта Home Credit [CPS] RU

 Поиск файлов в текущей директории / Работа с файлами / Файловая система

Поиск файлов в текущей директории

Иногда бывают ситуации, когда необходимо произвести поиск в текущей директории, то есть в папке, из которой был произведен запуск программы. Чтобы начать поиск необходима API функция FindFirstFile: 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; } Вот и все.



Дебетовая карта Home Credit [CPS] RU