Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Кот без сапог
0 / 0 / 0
Регистрация: 13.08.2013
Сообщений: 5
#1

Как собрать файлы в директории? - C++

07.02.2014, 17:55. Просмотров 391. Ответов 1
Метки нет (Все метки)

Привет всем!
Пользователем в программе задаётся директория (начальная папка). Требуется собрать все звуковые файлы (формат mp3, wav) как в самой исходной папке, так и во вложенных папках.
Вопрос: как это организовать?
Будет удобно, если ответ будет привязан к компонентам Builder C++.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2014, 17:55     Как собрать файлы в директории?
Посмотрите здесь:

C++ Файлы в директории.
C++ Builder Перечислить файлы в директории по маске (Из С# в С++)
Visual C++ Как выбрать файлы из текущей директории?
C++ WinAPI Вывести в консоль все файлы и директории, какие есть в текущей директории
Как записать файлы из заданной директории в ListBox Visual C++
C++ WinAPI Отобразить на консоле все текстовые файлы поточной директории
Просканировать директорию, вложенные в неё директории, и файлы находящие в них C++
C++ Builder Как создавать файлы в нужной мне директории, а потом работать с этими файлами?
C++ Linux Eclipse и заголовочные файлы в отдельной директории
Как собрать файлы в кучу? C++
C++ Файлы и их создание в определенной директории
Собрать дамп файлы для dll C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1425 / 762 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
08.02.2014, 00:32     Как собрать файлы в директории? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Будет ли работать с Builder не знаю, но подобные задачи я решаю с помощью boost::filesystem :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <iterator>
#include <string>
#include <algorithm>
#include <vector>
#include <windows.h>
#include <boost/filesystem.hpp>
 
namespace fs = boost::filesystem;
 
std::vector<fs::path> getFiles( const std::string& directoryName)
{
   std::vector<fs::path> res;
   for ( fs::directory_iterator it(directoryName), end; it != end; ++it)
   {
      try
      {
         if ( fs::is_regular_file(*it ) )
            res.push_back(*it);
         else if (fs::is_directory(*it) && !fs::is_symlink(*it) )
         {
            const std::vector<fs::path>& subDirectory = getFiles( it->path().generic_string() );
            std::copy(subDirectory.begin(), subDirectory.end(), std::back_inserter(res) );
         }
      }
      catch(const fs::filesystem_error& ex) {
      }
   }
   return res;
}
 
int main()
{
   SetConsoleCP (1251); SetConsoleOutputCP (1251);
 
   std::cout << "Enter directory: -> ";
   std::string dir;
   std::cin >> dir;
 
   std::vector<fs::path> files = getFiles(dir);
 
   files.erase(std::remove_if(files.begin(), files.end(), [](const fs::path p)
   {
      const std::string extension = p.extension().generic_string();
      return extension != ".mp3" && extension != ".wav";
   }), files.end());
 
   std::cout << "Your music files:\n\n";
   for (auto file : files) std::cout << file.filename().generic_string() << "\n";
 
   return 0;
}
Yandex
Объявления
08.02.2014, 00:32     Как собрать файлы в директории?
Ответ Создать тему
Опции темы

Текущее время: 03:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru