c# – 目录列表递归

我试图在递归方法中将List连接到另一个时遇到问题.每次递送时我都可以打印出List的每个成员,但是一旦我尝试将它添加到另一个主列表中,它似乎就会出现问题.

我得到的错误是:空对象引用错误.

我这样做的主要动机是递归地创建给定文件夹/路径中所有目录和子目录的列表.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;


namespace listsubdirsinfile
{
    class Program
    {
        public static DirectoryInfo directory;
        public static List<DirectoryInfo> allSubDirectories;
        public static FileInfo[] files;

        static void Main(string[] args)
        {
            directory = new DirectoryInfo(@"C:\cs\");

            allSubDirectories = getAllSubdirectories(directory);


            Console.WriteLine("allSubdirectories\n-----------------");
            foreach (DirectoryInfo aDirectory in allSubDirectories)
            {
                Console.WriteLine(aDirectory.ToString());
            }
            Console.ReadKey();
        }

        static List<DirectoryInfo> getAllSubdirectories(DirectoryInfo dir)
        {
            List<DirectoryInfo> subDirs = new List<DirectoryInfo>();

            subDirs = dir.GetDirectories().ToList();
            foreach (DirectoryInfo sDir in subDirs)
            {
                Console.WriteLine(sDir.ToString());

               // allSubDirectories.Add(sDir);

                subDirs.Concat(getAllSubdirectories(sDir));
            }

            return subDirs;
        }
    }
}

我评论的部分是导致问题的一点.

任何你能给予的帮助将不胜感激!

你使用的是.NET 4吗?在这种情况下:

System.IO.Directory.GetDirectories(@"C:\My Sample Path\","*",
    System.IO.SearchOption.AllDirectories);
相关文章
相关标签/搜索