private static ICollection GetImapChildren (MailFolder folder) { ArrayList children = new ArrayList (); DirectoryInfo folder_dir; folder_dir = new DirectoryInfo (Path.Combine(folder.Path,"folders")); if (!folder_dir.Exists) folder_dir = new DirectoryInfo (Path.Combine(folder.Path,"subfolders")); if (!folder_dir.Exists) return children; foreach (DirectoryInfo child_folder_dir in folder_dir.GetDirectories ()) { MailFolder child_folder = new MailFolder (child_folder_dir.Name, child_folder_dir.FullName); child_folder.AddChildren (GetImapChildren (child_folder)); children.Add (child_folder); } return children; }
private static ICollection GetLocalChildren (MailFolder folder) { ArrayList children = new ArrayList (); DirectoryInfo folder_dir; folder_dir = new DirectoryInfo (folder.Path); if (!folder_dir.Exists) folder_dir = new DirectoryInfo (folder_dir.FullName + ".sbd"); if (!folder_dir.Exists) return children; foreach (FileInfo child_summary_file in folder_dir.GetFiles ("*.cmeta")) { MailFolder child_folder = new MailFolder (child_summary_file.Name.Substring (0,child_summary_file.Name.Length-6), child_summary_file.FullName.Substring (0, child_summary_file.FullName.Length-6)); child_folder.AddChildren (GetLocalChildren (child_folder)); children.Add (child_folder); } return children; }
public void AddChild (MailFolder child) { this.children.Add (child); }