Прошу помощи по решению следующей проблемы:
В приложении (под Windows 7) используется recursive_directory_iterator,
и когда он (итератор) доходит до каталога с запрещенным доступом,
его работа прерывается (по exception).
Вопрос в том, как возобновить работу итератора (после exception) и, пропустив проблемный каталог(и), двигаться по каталогам дальше.
Доп. сведения:
Windows 7 RU, VS 2005, C++
boost 1.46.1
Тестовый пример:
Раскрывающийся текст
#include "stdafx.h"
#include "boost\filesystem.hpp"
#include <iostream>
using namespace std;
using namespace boost;
using namespace boost::filesystem3;
int _tmain(int argc, _TCHAR* argv[])
{
wpath p( L"c:\\" );
// Exception случится, например на "c:\\System Volume Information",
// а как пропустить его и продолжить дальше?
try
{
wrecursive_directory_iterator i( p ), end;
for(; i != end; i++)
{
wcout << *i << std::endl;
}
}
catch (const filesystem_error& ex)
{
wcout << ex.what() << '\n';
}
return 0;
}