internal bool VisitAllHelper(int level, VisitDirectoryEntryHandler visitEntryMethod, ArrayList levelTags) { foreach (Ole2DirectoryEntry entry in this) { VisitDirectoryEntryArgs args = new VisitDirectoryEntryArgs(entry, this, level, true, true, true, ArrayList.FixedSize(levelTags)); visitEntryMethod(args); if (!args.ContinueVisiting) { return(false); } if (args.VisitChildren) { Ole2Storage storage = entry as Ole2Storage; if (storage != null) { levelTags.Add(null); bool flag = storage.VisitAllHelper(level + 1, visitEntryMethod, levelTags); levelTags.RemoveAt(levelTags.Count - 1); if (!flag) { return(false); } } } if (!args.VisitSiblings) { break; } } return(true); }
public void VisitAll(VisitDirectoryEntryHandler visitEntryMethod, object rootLevelTag) { ArrayList levelTags = new ArrayList(); levelTags.Add(rootLevelTag); levelTags.Add(null); this.VisitAllHelper(1, visitEntryMethod, levelTags); }
public void VisitAll(VisitDirectoryEntryHandler visitEntryMethod) { this.VisitAll(visitEntryMethod, null); }