private ToolStripMenuItem getRightClickItem_Add_NewFolder() { return(new ToolStripMenuItem("New folder", Icons.GetBitmap("menu.newfolder", 16), delegate(object s, EventArgs e) { //get the currently selected folder ProjectEntity folder = GetSelectedProjectEntity(); if (folder == null) { folder = GetSelectedProject().Root; } ProjectDirectory dir = (ProjectDirectory)folder; //define what the new folder name would be //(use a counter for every time we hit one that already //is called newfolderx int folderCounter = 1; string folderName = "New folder"; while (dir.DirectoryExists(folderName)) { folderName = "New folder (" + folderCounter + ")"; folderCounter++; } //create the directory ProjectDirectory newDir = dir.CreateDirectory(folderName); //update the tree TreeNode node = findNodeByTag(dir.IsRoot ? (object)dir.Project : (object)dir); object st = PushTreeState(); IndexDirectory(dir, node); PopTreeState(st); node.Expand(); })); }