public bool MoveNext() { var current = Current; if (ShouldRecurse(current)) { EnumeratorStack.Push(GetDirectoryEnumerator(current as DirectoryInfo)); } var moveNextSuccess = TopEnumerator.MoveNext(); while (!moveNextSuccess && TopEnumerator != null) { EnumeratorStack.Pop(); moveNextSuccess = TopEnumerator != null && TopEnumerator.MoveNext(); } return(moveNextSuccess); }
public void Reset() { EnumeratorStack.Clear(); EnumeratorStack.Push(GetDirectoryEnumerator(new DirectoryInfo(InitialPath))); }