Итератор файловой системы для C ++ - PullRequest
4 голосов
/ 17 апреля 2011

Мне нужен базовый C ++ STL-подобный контейнер для файловой системы.

например.

std::filesystem::const_iterator i = filesys.begin();  
i->file_name(); i->full_path(), 

и т.д ..

Существует ли что-то подобное?

Ответы [ 4 ]

5 голосов
/ 17 апреля 2011

Да.Это существует.Почти аналогично, по крайней мере, которое может работать с итераторами и контейнерами STL.

boost :: filesystem

Пример:

path p ("directorypath");
std::vector<path> v;                      
std::copy(directory_iterator(p), directory_iterator(), std::back_inserter(v));
for (std::vector<path>::const_iterator it=v.begin(); it != v.end(); ++it)
{
     std::cout << "   " << *it << std::endl;
}

Полагаю,теперь вы хотели бы взглянуть на directory_iterator, чтобы узнать, что еще он предоставляет.

2 голосов
/ 17 апреля 2011

Еще один STLSOFT platformstl :: readdir_sequence.

Пример предоставлен здесь

1 голос
/ 17 апреля 2011

Я считаю, что библиотека boost :: filesystem обладает такой функциональностью.

0 голосов
/ 08 апреля 2014

Visual C ++ 2012 теперь что-то имеет. См. C ++ 11 файловая система (VS2012) . Также http://msdn.microsoft.com/en-us/library/hh874694.aspx для реализации VS2013.

...