public static IProjectFolder GetSubFolders(FileSystemProject project, IProjectFolder parent, string path)
        {
            var result = new StandardProjectFolder(path);

            try
            {
                var folders = Directory.GetDirectories(path);

                if (folders.Count() > 0)
                {
                    foreach (var folder in folders.Where(f => !IsExcluded(project.ExcludedFiles, project.CurrentDirectory.MakeRelativePath(f).ToAvalonPath())))
                    {
                        result.Items.InsertSorted(GetSubFolders(project, result, folder));
                    }
                }

                PopulateFiles(project, result);

                project.Folders.InsertSorted(result);
                result.Parent  = parent;
                result.Project = project;
            }
            catch (Exception)
            {
            }

            return(result);
        }
        public static IProjectFolder GetSubFolders(FileSystemProject project, IProjectFolder parent, string path)
        {
            var result = new StandardProjectFolder(path);

            var folders = Directory.GetDirectories(path);

            if (folders.Count() > 0)
            {                
                foreach (var folder in folders.Where(f => !IsExcluded(project.ExcludedFiles, project.CurrentDirectory.MakeRelativePath(f).ToAvalonPath())))
                {
                    result.Items.InsertSorted(GetSubFolders(project, result, folder));
                }
            }

            PopulateFiles(project, result);

            project.Folders.InsertSorted(result);
            result.Parent = parent;
            result.Project = project;

            return result;
        }