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


Автор: EgorTheBlade 11.11.2010, 14:19
Добрый День.Можно ли вывести все существующие файлы в папке на экран?
Например:
В папке лежат 3 файла.
123.txt
222.txt
333.txt
Можно ли вывести их на консоль указав только папку и определить сколько файлов хранится в файле?

Вывод на экран:
Код

3 files
Names:
123.txt
222.txt
333.txt

Автор: jonie 11.11.2010, 19:38
EgorTheBlade, можно. Т.к. раздел общих вопросов, то вам пригодится абстракция от операционной системы, например boost::filesystem.

и вообще правильнее называть директорией, а не папкой...

Автор: Incinerated 12.11.2010, 10:29
Код

void PrintFilesInDir(TCHAR* Dir)
{
   const int max_path = 512;
   WIN32_FIND_DATA ffd;
   TCHAR szDir[max_path];
   HANDLE hFind = INVALID_HANDLE_VALUE;
   if (!PathFileExists(Dir))
       return;
   StringCchCopy(szDir, max_path, Dir);
   StringCchCat(szDir, max_path, TEXT("\\*"));

   // Find the first file in the directory.

   hFind = FindFirstFile(szDir, &ffd);

   if (INVALID_HANDLE_VALUE == hFind) 
   {
      return;
   } 
   
   do
   {
      if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
      {
         // папка
      }
      else
      {         
            std::cout << ffd.cFileName << std::endl;
      }
   }
   while (FindNextFile(hFind, &ffd) != 0);
 

  FindClose(hFind);
}

что то такое) работоспособность не проверял.

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