Hello friends!
I'm trying to use directory_iterator but when I try to list recursivelly an entire drive or a big directory I get an unhandled exception.
I'm trying to figure out if I did something wrong but the code is very similar to the example on the boost web page.
Here is the code:

//-------------------------------------------------------------------
VOID CFileSearch::InternalSearch( path RootDir )
{  
    directory_iterator EndDirItr;
    for ( directory_iterator DirItr( RootDir ); DirItr != EndDirItr;  ++DirItr )
    {  
        if ( is_regular( DirItr->status() ) )
        {
            _tprintf( "FILE: %s\n", DirItr->path().string().c_str() );
        }
        else if ( is_directory( DirItr->status() ) )
        {
            _tprintf( "DIR : %s\n", DirItr->path().string().c_str() );
            InternalSearch( DirItr->path()  );
        }
    }
}

//-------------------------------------------------------------------
VOID CFileSearch::Search( string RootDir  )
{  
    path TempRootDir = system_complete( path( RootDir, native ) );
    if ( exists( TempRootDir ) == true )
    {
        InternalSearch( TempRootDir );
    }
}

//-------------------------------------------------------------------
CFileSearch FileSearch;
FileSearch.Search( "c:\\" );

Is there something wrong in the above code?
Thank you in advance.
Silvio.