Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > список файлов


Автор: Leopard25 2.7.2004, 11:18
Как получить список файлов с определённым ресширением
из заданной директории неоткрывая CFileDialog ?

Автор: Олег М 2.7.2004, 11:24
Дофига способов. Например CFileFind
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cfilefind.asp

Автор: Конструктор 2.7.2004, 11:43
Выдрато из MSDN и несколько модифицировано:

Код

   WIN32_FIND_DATA FindFileData;
   HANDLE hFind;// = INVALID_HANDLE_VALUE;
   DWORD dwError;
   int err;

   hFind = FindFirstFile((path + "\\*.*").c_str(), &FindFileData);//Тут можно масочку подправить

   if (hFind == INVALID_HANDLE_VALUE)
   {
       //Status = "Ошибка: Файлы не найдены";
       return (-1);
   }
   else
   {
       if (strcmp(FindFileData.cFileName , ".") != 0 &&
           strcmp(FindFileData.cFileName , "..") != 0 &&
           (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != FILE_ATTRIBUTE_DIRECTORY)
       {
       //Нашелся файл
       }

       while (FindNextFile(hFind, &FindFileData) != 0)
       {
           if (strcmp(FindFileData.cFileName , ".") != 0 &&
               strcmp(FindFileData.cFileName , "..") != 0 &&
               (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != FILE_ATTRIBUTE_DIRECTORY)
           {
           //Нашелся еще файл
           }
       }

       dwError = GetLastError();
       if (dwError == ERROR_NO_MORE_FILES)
           FindClose(hFind);
       else
           return -1;
   }
   return 0;

Автор: Leopard25 2.7.2004, 12:22
Спасибо всем.
первый вариант проще

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)