public void CreateSubFoldersMenu(ToolStripMenuItem mainmenu, Link link, System.IO.DirectoryInfo dir) { if (!dir.Exists) { return; } var subdirs = new System.IO.DirectoryInfo[0]; if (link.ShowSubFolders) { subdirs = dir.GetDirectories("*", System.IO.SearchOption.TopDirectoryOnly); } mainmenu.DropDownItems.Clear(); if (link.ShowOpenFolder) { mainmenu.DropDownItems.Add(new ToolStripMenuItem("Abrir Carpeta", Resources.Open_Folder_yellow.ToBitmap(), (sender, e) => { Utils.Action.DoOpenFile(sender.GetTag <string>()); }).Do((m) => { m.Tag = dir.FullName; })); mainmenu.DropDownItems.Add(new ToolStripSeparator()); } foreach (var subdir in subdirs.OrderBy(p => p.FullName)) { var mSubdir = new ToolStripMenuItem(); mSubdir.Text = subdir.Name; mSubdir.Image = Recursos.GetImage(link.Icon); mSubdir.Tag = link; mSubdir.DropDownOpening += (sender, e) => { CreateSubFoldersMenu((ToolStripMenuItem)sender, sender.GetTag <Link>(), subdir); }; mainmenu.DropDownItems.Add(mSubdir); } AgregateFilesMenu(mainmenu, link.FolderFileFilter, dir); }