コード例 #1
0
 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);
 }
コード例 #2
0
        public void VisitAll(VisitDirectoryEntryHandler visitEntryMethod, object rootLevelTag)
        {
            ArrayList levelTags = new ArrayList();

            levelTags.Add(rootLevelTag);
            levelTags.Add(null);
            this.VisitAllHelper(1, visitEntryMethod, levelTags);
        }
コード例 #3
0
 public void VisitAll(VisitDirectoryEntryHandler visitEntryMethod)
 {
     this.VisitAll(visitEntryMethod, null);
 }