📅  最后修改于: 2023-12-03 15:41:47.442000             🧑  作者: Mango
在开发过程中,我们经常需要读取文件夹中的文件或子文件夹,C#提供了多种读取文件夹的方法。在本篇文章中,我们将介绍如何在C#中读取文件夹及其子文件夹。
C#提供了Directory类来读取文件夹,它包含了许多用于读取目录和文件的方法。
以下是使用Directory类读取文件夹及其子文件夹的示例代码:
using System.IO;
class Program
{
static void Main(string[] args)
{
// 文件夹路径
string folderPath = @"C:\example";
// 获取文件夹中文件的路径
string[] files = Directory.GetFiles(folderPath, "*.*", SearchOption.TopDirectoryOnly);
// 获取文件夹中子文件夹的路径
string[] directories = Directory.GetDirectories(folderPath);
// 打印文件路径
foreach (string file in files)
{
Console.WriteLine(file);
}
// 打印子文件夹路径
foreach (string directory in directories)
{
Console.WriteLine(directory);
}
}
}
GetFiles
方法用于获取文件夹中所有文件的路径。接收三个参数:文件夹路径、搜索匹配项和搜索选项。搜索匹配项中的“.”表示搜索所有文件。GetDirectories
方法用于获取文件夹中所有子文件夹的路径。接收一个参数:文件夹路径。SearchOption.TopDirectoryOnly
选项表示只搜索当前目录,不搜索子目录。C#还提供了DriveInfo和DirectoryInfo类来读取文件夹。
以下是使用DriveInfo和DirectoryInfo类读取文件夹及其子文件夹的示例代码:
using System.IO;
class Program
{
static void Main(string[] args)
{
// 文件夹路径
string folderPath = @"C:\example";
// 获取驱动器信息
DriveInfo drive = new DriveInfo(Path.GetPathRoot(folderPath));
// 获取文件夹信息
DirectoryInfo directory = new DirectoryInfo(folderPath);
// 获取文件夹中文件的路径
FileInfo[] files = directory.GetFiles("*.*", SearchOption.TopDirectoryOnly);
// 获取文件夹中子文件夹的路径
DirectoryInfo[] directories = directory.GetDirectories();
// 打印驱动器信息
Console.WriteLine(drive.Name);
Console.WriteLine(drive.DriveFormat);
Console.WriteLine(drive.TotalSize);
// 打印文件路径
foreach (FileInfo file in files)
{
Console.WriteLine(file.FullName);
}
// 打印子文件夹路径
foreach (DirectoryInfo dir in directories)
{
Console.WriteLine(dir.FullName);
}
}
}
DriveInfo
类用于获取驱动器信息,可以通过Path类的GetPathRoot方法获取文件夹所在驱动器的根目录。DirectoryInfo
类用于获取文件夹信息,接收一个参数:文件夹路径。GetFiles
方法用于获取文件夹中所有文件信息。接收两个参数:搜索匹配项和搜索选项。GetDirectories
方法用于获取文件夹中所有子文件夹信息。无需参数。本文介绍了如何使用C#读取文件夹及其子文件夹,包括使用Directory类、DriveInfo类和DirectoryInfo类三种方式。开发者可以根据自己的需求选择最适合的方法。