public static void EnumerateFolders(List <Folder> folderList, Folder startFolder, bool includeHiddenFolders) { TraceOutput.TraceEvent(TraceEventType.Information, 0, $"Enumerating {startFolder.Folders.Count} folders in {startFolder.Name}"); if (!startFolder.HasSubfolders()) { TraceOutput.TraceEvent(TraceEventType.Verbose, 0, "No subfolders found in folder specified"); return; } foreach (Folder folder in startFolder.Folders) { if (folder.IsHidden() && !includeHiddenFolders) { continue; } folderList.Add(folder); TraceOutput.TraceEvent(TraceEventType.Information, 0, $"\t{folder.Name}"); if (folder.Folders.Count > 0) { EnumerateFolders(folderList, folder, includeHiddenFolders); } } }
public static bool IsHidden(this Folder folder) { bool b; if (folder.HasIMAPIProperty(IMAPIPropertyTags.PR_ATTR_HIDDEN) == 1) { b = true; } else { b = false; } TraceOutput.TraceEvent(TraceEventType.Verbose, 0, $"{folder.Name} is hidden: {b}"); return(b); }
public static bool HasSubfolders(this Folder folder) { bool b; if (folder.HasIMAPIProperty(IMAPIPropertyTags.PR_SUBFOLDERS) == 1) { b = true; } else { b = false; } TraceOutput.TraceEvent(TraceEventType.Verbose, 0, $"{folder.Name} has subfolders: {b}"); return(b); }