C# DirectoryInfo.GetDirectories – 获取目录下的所有子目录信息

  • Post category:C#

DirectoryInfo.GetDirectories 方法是C#中DirectoryInfo类提供的一个方法,用于获取指定目录中的所有子目录。

方法概述

public DirectoryInfo[] GetDirectories();

参数

该方法没有参数。

返回值

返回类型是DirectoryInfo[],表示包含指定目录的所有子目录的字符串数组。

示例说明

示例一:获取指定目录下的所有子目录,并输出它们的名称

using System;
using System.IO;

class Example
{
    static void Main()
    {
        try
        {
            // 指定要获取子目录的目录路径
            DirectoryInfo dir = new DirectoryInfo(@"C:\example");

            // 获取目录中的子目录
            DirectoryInfo[] dirs = dir.GetDirectories();

            // 打印子目录的名称
            foreach (DirectoryInfo d in dirs)
            {
                Console.WriteLine(d.Name);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}

该示例中,首先使用DirectoryInfo类创建一个目录信息对象,表示要获取子目录的目录。接着,调用GetDirectories方法,获得一个包含所有子目录信息的数组。最后,在一个foreach循环中,通过遍历子目录信息数组,输出每个子目录的名称。

示例二:获取指定目录下所有子目录中的文件总数,并输出

using System;
using System.IO;

class Example
{
    static void Main()
    {
        try
        {
            // 指定要获取子目录中文件总数的目录路径
            DirectoryInfo dir = new DirectoryInfo(@"C:\example");

            // 获取目录中的所有子目录
            DirectoryInfo[] dirs = dir.GetDirectories();

            int fileCount = 0; // 文件总数

            // 遍历每个子目录
            foreach (DirectoryInfo d in dirs)
            {
                // 获取子目录中所有文件
                FileInfo[] files = d.GetFiles("*.*");

                // 统计文件数
                fileCount += files.Length;
            }

            // 输出文件总数
            Console.WriteLine("File count: " + fileCount);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}

在该示例中,首先使用DirectoryInfo类创建一个目录信息对象,表示要获取子目录中文件总数的目录。接着,调用GetDirectories方法,获得一个包含所有子目录信息的数组。然后,初始化fileCount变量,表示文件总数。接下来,在一个foreach循环中,遍历子目录信息数组。对于每个子目录,通过GetFiles方法获取其中的所有文件,并统计文件数。最后,输出文件总数。

综上所述,DirectoryInfo.GetDirectories方法可以方便地获取指定目录的子目录,并且可以与其他System.IO类中的方法结合使用,实现各种文件和目录的管理需求。