private void CleanFolder(FolderItem folder)
        {
            if (folder.SubDirs != null && folder.SubDirs.Count > 0)
            {
                for (var i = folder.SubDirs.Count - 1; i >= 0; i--)
                {
                    CleanFolder(folder.SubDirs[i]);
                }
//                folder.SubDirs = null;
            }
            if (folder.Projects != null)
            {
                for (var i = folder.Projects.Count - 1; i >= 0; i--)
                {
                    var project        = folder.Projects[i];
                    var collectionItem = _collectionItems.FirstOrDefault(ci => ci.Project == project);
                    if (collectionItem != null)
                    {
                        RemoveItem(collectionItem, false);
                    }
                }
            }
        }
 private FolderItem GetDir(FolderItem parentItem, string[] createdPath, int currentIndex)
 {
     if (parentItem.SubDirs != null)
     {
         foreach (var item in parentItem.SubDirs)
         {
             if (string.Equals((item.Name), createdPath[currentIndex], StringComparison.CurrentCultureIgnoreCase))
             {
                 if (currentIndex == createdPath.Length - 1)
                 {
                     return item;
                 }
                 return GetDir(item, createdPath, currentIndex + 1);
             }
         }
     }
     else
     {
         parentItem.SubDirs = new List<FolderItem>();
     }
     // Если не найдено, создаём каталог
     var fullPath = _projectCollection.RootDir;
     for (var i = 0; i < currentIndex; i++)
     {
         fullPath = Path.Combine(fullPath, createdPath[i]);
     }
     for (var i = currentIndex; i < createdPath.Length; i++)
     {
         fullPath = Path.Combine(fullPath, createdPath[i]);
         var curItem = new FolderItem
         {
             Parent = parentItem,
             Name = createdPath[i],
             FullPath = fullPath,
             SubDirs = new List<FolderItem>()
         };
         parentItem.SubDirs.Add(curItem);
         parentItem = curItem;
     }
     return parentItem;
 }
        private void CleanFolder(FolderItem folder)
        {
            if (folder.SubDirs != null && folder.SubDirs.Count > 0)
            {
                for (var i = folder.SubDirs.Count - 1; i >= 0; i--)
                {
                    CleanFolder(folder.SubDirs[i]);
                }
//                folder.SubDirs = null;
            }
            if (folder.Projects != null)
            {
                for (var i = folder.Projects.Count - 1; i >= 0; i--)
                {
                    var project = folder.Projects[i];
                    var collectionItem = _collectionItems.FirstOrDefault(ci => ci.Project == project);
                    if (collectionItem != null)
                        RemoveItem(collectionItem, false);
                }
            }
        }