Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Кот без сапог
0 / 0 / 0
Регистрация: 13.08.2013
Сообщений: 5
#1

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

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

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

Как собрать установочный файл?
Я написал программу, но хочу сделать так, чтобы она устанавливалась. Как это...

Как правильно собрать ICU для g++ под Windows?
Не получается собрать ICU для компилятора g++ 4.8.2. Делаю через MSYS. Мои...

Как создавать файлы в нужной мне директории, а потом работать с этими файлами?
Хочу, чтобы программа создавала файлы в нужной мне директории, а потом работала...

Перечислить файлы в директории по маске (Из С# в С++)
Ребят, помогите сделать тоже самое, только на С++. Я не знаю, что и делать....

В заданной директории просмотреть все txt-файлы и вывести список файлов, содержащих заданный текст
В заданной директории просмотреть все файлы *.txt и вывести список файлом...

1
DiffEreD
1442 / 779 / 257
Регистрация: 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;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2014, 00:32

В заданной директории просмотреть все файлы *.txt и вывести список файлов содержащих заданные текст в Memo
//--------------------------------------------------------------------------- ...

Как массово сменить разширения для файлов в директории
Делаю консольное приложение. Нужно: Найти все файлы в папке(только файлы,...

как собрать приложение?
Простите, я новечёк в этом деле, обьясните пожалуйста как из исходников собрать...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru