private bool AdvanceRootDir()
{
++m_nRootDir;
if (m_nRootDir >= m_RootDir.Length)
{
m_nRootDir = m_RootDir.Length; // to prevent wrap around
return false; // We are at the very end.
}
m_SubDir = Directory.GetDirectories(m_RootDir[m_nRootDir]);
if (m_SubDir.Length == 0)
return AdvanceRootDir(); // recurse here.
m_nSubDir = 0;
// Set m_Current
UpdateCurrent();
return true;
}