加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 目录列表递归

发布时间:2020-12-16 01:49:27 所属栏目:百科 来源:网络整理
导读:我试图在递归方法中将List连接到另一个时遇到问题.每次递送时我都可以打印出List的每个成员,但是一旦我尝试将它添加到另一个主列表中,它似乎就会出现问题. 我得到的错误是:空对象引用错误. 我这样做的主要动机是递归地创建给定文件夹/路径中所有目录和子目
我试图在递归方法中将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("allSubdirectoriesn-----------------");
            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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读