Форум программистов, компьютерный форум, киберфорум
Boost C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/27: Рейтинг темы: голосов - 27, средняя оценка - 4.89
0 / 0 / 1
Регистрация: 23.07.2011
Сообщений: 14

не могу разобраться c boost.filesystem

07.04.2012, 15:02. Показов 5719. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
не как не могу разобрать с 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
path p ("./");
  try
  {
    if (exists(p))    // does p actually exist?
    {
      if (is_regular_file(p))        // is p a regular file?
        cout << p << " size is " << file_size(p) << '\n';
 
      else if (is_directory(p))      // is p a directory?
      {
        cout << p << " is a directory containing:\n";
 
        copy(directory_iterator(p), directory_iterator(),  // directory_iterator::value_type
          ostream_iterator<directory_entry>(cout, "\n"));  // is directory_entry, which is
                                                           // converted to a path by the
                                                           // path stream inserter
      }
      else
        cout << p << " exists, but is neither a regular file nor a directory\n";
    }
    else
      cout << p << " does not exist\n";
  }
 
  catch (const filesystem_error& ex)
  {
    cout << ex.what() << '\n';
  }
например тут выводиться содержимое каталога. А как сделать тоже самое только записать в массив?Уже всю голову сломал.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.04.2012, 15:02
Ответы с готовыми решениями:

boost.filesystem
Всем привет! Проблема в следующем. Если пытаюсь скомпилировать код, содержащий включение каких либо хидеров из boos.filesystem,...

boost filesystem
Всем привет! В студии при построении проекта с подключенным boost/filesystem.hpp ошибка LINK : fatal error LNK1104: не удается...

boost::filesystem
Доброго времени суток. Подскажите пожалуйста, как можно преобразовать path в char*?

12
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
07.04.2012, 15:09
http://www.boost.org/doc/libs/... e/tut4.cpp
1
 Аватар для igorrr37
2869 / 2016 / 991
Регистрация: 21.12.2010
Сообщений: 3,728
Записей в блоге: 15
07.04.2012, 15:32
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
cout << p << " is a directory containing:\n";
            directory_entry arr[20];
            directory_iterator it(p), itEnd;
            int i;
            for(i = 0; it != itEnd; ++it, ++i)
            {
                arr[i] = *it;
                cout << arr[i] << endl;
            }
            cout << i << endl;
          }
          else
            cout << p << " exists, but is neither a regular file nor a directory\n";
1
0 / 0 / 1
Регистрация: 23.07.2011
Сообщений: 14
07.04.2012, 15:39  [ТС]
спасибо, только одного не пойму вот тут
C++
1
2
3
4
        for (vec::const_iterator it(v.begin()), it_end(v.end()); it != it_end; ++it)
        {
          cout << "   " << *it << '\n';
        }
*it вывести можно, а в массив строк записать нельзя?
0
 Аватар для igorrr37
2869 / 2016 / 991
Регистрация: 21.12.2010
Сообщений: 3,728
Записей в блоге: 15
07.04.2012, 16:00
можно
C++
1
2
3
4
5
6
7
8
cout << p << " is a directory containing:\n";
            directory_iterator it(p), itEnd;
            std::vector<std::string> v;
            for(; it != itEnd; ++it)
            {
                v.emplace_back(it->path().string());
            }
            std::copy(v.begin(), v.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
1
0 / 0 / 1
Регистрация: 23.07.2011
Сообщений: 14
07.04.2012, 16:59  [ТС]
прик копмиляции
C++
1
2
3
4
5
6
7
8
cout << p << " is a directory containing:\n";
            directory_iterator it(p), itEnd;
            std::vector<std::string> v;
            for(; it != itEnd; ++it)
            {
                v.emplace_back(it->path().string());
            }
            std::copy(v.begin(), v.end(), std::ostream_iterator<std::string>(std::cout, "\n"));

class std::vector<std::basic_string<char> >» has no member named «emplace_back»
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
07.04.2012, 17:04
Обновите компилятор, либо замените на push_back
1
0 / 0 / 1
Регистрация: 23.07.2011
Сообщений: 14
07.04.2012, 18:41  [ТС]
обновил тоже самое. C push_back:

/usr/bin/ld: /tmp/ccxzXhbl.o: undefined reference to symbol '_ZN5boost6system15system_categoryEv'
/usr/bin/ld: note: '_ZN5boost6system15system_categoryEv' is defined in DSO /usr/lib/libboost_system.so.1.49.0 so try adding it to the linker command line
/usr/lib/libboost_system.so.1.49.0: could not read symbols: Invalid operation
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
07.04.2012, 18:47
boost_system прилинкована?
1
0 / 0 / 1
Регистрация: 23.07.2011
Сообщений: 14
07.04.2012, 20:06  [ТС]
раньше линковал -lboost_filesystem. А вот с -lboost_system, работает. Но

уже вот такая
ошибка
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/tmp/ccZeDPqF.o: In function `boost::filesystem3::exists(boost::filesystem3::path const&)':
test.cpp:(.text._ZN5boost11filesystem36existsERKNS0_4pathE[_ZN5boost11filesystem36existsERKNS0_4pathE]+0x19): undefined reference to `boost::filesystem3::detail::status(boost::filesystem3::path const&, boost::system::error_code*)'
/tmp/ccZeDPqF.o: In function `boost::filesystem3::is_directory(boost::filesystem3::path const&)':
test.cpp:(.text._ZN5boost11filesystem312is_directoryERKNS0_4pathE[_ZN5boost11filesystem312is_directoryERKNS0_4pathE]+0x19): undefined reference to `boost::filesystem3::detail::status(boost::filesystem3::path const&, boost::system::error_code*)'
/tmp/ccZeDPqF.o: In function `boost::filesystem3::is_regular_file(boost::filesystem3::path const&)':
test.cpp:(.text._ZN5boost11filesystem315is_regular_fileERKNS0_4pathE[_ZN5boost11filesystem315is_regular_fileERKNS0_4pathE]+0x19): undefined reference to `boost::filesystem3::detail::status(boost::filesystem3::path const&, boost::system::error_code*)'
/tmp/ccZeDPqF.o: In function `boost::filesystem3::file_size(boost::filesystem3::path const&)':
test.cpp:(.text._ZN5boost11filesystem39file_sizeERKNS0_4pathE[_ZN5boost11filesystem39file_sizeERKNS0_4pathE]+0x19): undefined reference to `boost::filesystem3::detail::file_size(boost::filesystem3::path const&, boost::system::error_code*)'
/tmp/ccZeDPqF.o: In function `boost::filesystem3::detail::dir_itr_imp::~dir_itr_imp()':
test.cpp:(.text._ZN5boost11filesystem36detail11dir_itr_impD2Ev[_ZN5boost11filesystem36detail11dir_itr_impD5Ev]+0x24): undefined reference to `boost::filesystem3::detail::dir_itr_close(void*&, void*&)'
/tmp/ccZeDPqF.o: In function `boost::filesystem3::directory_iterator::directory_iterator(boost::filesystem3::path const&)':
test.cpp:(.text._ZN5boost11filesystem318directory_iteratorC2ERKNS0_4pathE[_ZN5boost11filesystem318directory_iteratorC5ERKNS0_4pathE]+0x57): undefined reference to `boost::filesystem3::detail::directory_iterator_construct(boost::filesystem3::directory_iterator&, boost::filesystem3::path const&, boost::system::error_code*)'
/tmp/ccZeDPqF.o: In function `boost::filesystem3::directory_iterator::increment()':
test.cpp:(.text._ZN5boost11filesystem318directory_iterator9incrementEv[_ZN5boost11filesystem318directory_iterator9incrementEv]+0x19): undefined reference to `boost::filesystem3::detail::directory_iterator_increment(boost::filesystem3::directory_iterator&, boost::system::error_code*)'
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
07.04.2012, 20:15
А у меня все линкуется без проблем
out
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
soon@desktop:~/Src/C++/main$ make && ./main ./
g++ -c -Wall -D_GLIBCXX_USE_NANOSLEEP -O3 --std=gnu++11 main.cpp -o main.o
g++ main.o -lm -lboost_regex -lboost_filesystem -lboost_system -o main
"./" is a directory containing:
   "./.Makefile.swp"
   "./.main.cpp.swl"
   "./.main.cpp.swm"
   "./.main.cpp.swn"
   "./.main.cpp.swo"
   "./.main.cpp.swp"
   "./Makefile"
   "./foo.cpp"
   "./foo.hpp"
   "./main"
   "./main.cpp"
   "./main.o"
   "./tags"
   "./test.txt"
soon@desktop:~/Src/C++/main$
0
0 / 0 / 1
Регистрация: 23.07.2011
Сообщений: 14
07.04.2012, 21:55  [ТС]
C++
1
2
3
4
5
6
7
8
cout << p << " is a directory containing:\n";
            directory_iterator it(p), itEnd;
            std::vector<std::string> v;
            for(; it != itEnd; ++it)
            {
                v.emplace_back(it->path().string());
            }
            std::copy(v.begin(), v.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
как вот тут *it записать в string a[1] ? что-то я не догоняю
0
 Аватар для igorrr37
2869 / 2016 / 991
Регистрация: 21.12.2010
Сообщений: 3,728
Записей в блоге: 15
07.04.2012, 22:07
C++
1
string a[i] = it->path().string();
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.04.2012, 22:07
Помогаю со студенческими работами здесь

boost::filesystem и искючения
При поиске файлов к примеру на диске C:\ можно получить к примеру такое сообщение. После чего поиск может прекратится... Можно ли...

boost::filesystem Относительный путь
Допустим есть путь Можно ли (и как ?) получить путь относительно другого пути ( или текущего каталога ) к примеру каталога B т.е ...

Не удается подключить boost::filesystem
Решил начать изучать boost::filesystem - в итоге ошибки линковщика. Делал все как здесь начиная с пункта 4(boost установил с помощью...

[Code::Blocks] Не работает Boost.Filesystem
Есть скомпилированный Boost (MinGW 6.3.0), Code::Blocks 16.01, Boost 1.65. Подключаю Boost к Codeblocks с помощью Settings -&gt; Global...

Boost::filesystem::copy_file не копирует файлы
Вот код:#include &lt;iostream&gt; #include &lt;vector&gt; #define BOOST_NO_CXX11_SCOPED_ENUMS #include &lt;boost/filesystem.hpp&gt; #include...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru