下面是详细讲解“C#遍历文件夹及其子目录的完整实现方法”的攻略:
方案概述
在C#中遍历文件夹及其子目录可以使用递归方式或者非递归方式实现。本文主要介绍递归方式实现的方法,并提供两个示例说明。
递归遍历文件夹
递归遍历文件夹的基本思路是采用递归调用方式,先获取当前目录下的所有文件和子目录,然后对每一个子目录再进行递归操作。具体实现可以使用Directory类和FileInfo类。
void TraverseFolder(string folderPath)
{
DirectoryInfo folder = new DirectoryInfo(folderPath);
if (!folder.Exists)
{
return;
}
// 遍历当前目录中的所有文件
foreach (FileInfo fileInfo in folder.GetFiles())
{
// TODO:对文件进行操作
}
// 遍历当前目录中的所有子目录
foreach (DirectoryInfo subFolder in folder.GetDirectories())
{
TraverseFolder(subFolder.FullName);
}
}
在上述示例代码中,首先判断一个给定的文件夹路径是否存在,如果不存在则直接返回。然后通过DirectoryInfo来获取当前文件夹信息,通过GetFiles和GetDirectories方法来遍历当前目录中的所有文件和子目录,递归地遍历子目录,直到遍历完为止。
示例一:遍历文件夹并输出文件名
下面给出一个示例代码,该代码实现了遍历“E:\test”文件夹及其子目录中的所有文件,并输出文件名称。
void Main()
{
TraverseFolder(@"E:\test");
}
void TraverseFolder(string folderPath)
{
DirectoryInfo folder = new DirectoryInfo(folderPath);
if (!folder.Exists)
{
return;
}
// 遍历当前目录中的所有文件
foreach (FileInfo fileInfo in folder.GetFiles())
{
Console.WriteLine(fileInfo.FullName);
}
// 遍历当前目录中的所有子目录
foreach (DirectoryInfo subFolder in folder.GetDirectories())
{
TraverseFolder(subFolder.FullName);
}
}
示例二:遍历文件夹并获取所有.cs文件
下面给出一个示例代码,该代码实现了遍历“E:\test”文件夹及其子目录中的所有以“.cs”为后缀名的文件,并输出文件名称。
void Main()
{
List<string> csFilePaths = new List<string>();
TraverseFolder(@"E:\test", ref csFilePaths);
foreach (string filePath in csFilePaths)
{
Console.WriteLine(filePath);
}
}
void TraverseFolder(string folderPath, ref List<string> csFilePaths)
{
DirectoryInfo folder = new DirectoryInfo(folderPath);
if (!folder.Exists)
{
return;
}
// 遍历当前目录中的所有文件
foreach (FileInfo fileInfo in folder.GetFiles())
{
if (fileInfo.Extension == ".cs")
{
csFilePaths.Add(fileInfo.FullName);
}
}
// 遍历当前目录中的所有子目录
foreach (DirectoryInfo subFolder in folder.GetDirectories())
{
TraverseFolder(subFolder.FullName, ref csFilePaths);
}
}
在上述示例代码中,首先定义了一个名为“csFilePaths”的空列表,该列表用于存储所有以“.cs”为后缀的文件名。然后将该列表作为参数传递给TraverseFolder方法,所有文件名会被添加到这个列表中。最后,在遍历结束后,输出该列表中所有的文件路径。
以上两个示例就是使用C#遍历文件夹及其子目录的完整实现方法,希望能够对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#遍历文件夹及其子目录的完整实现方法 - Python技术站