在c#中可以遍历指定驱动器或指定目录下嵌套目录中的所有文件或者任意深度的文件。通过遍历可以检索string形式的目录名和文件名,也可以检索 System.IO.FileInfo 或 System.IO.DirectoryInfo 对象形式的其他信息。可以通过递归遍历和堆栈遍历两种方式实现目录遍历。
递归遍历递归算法简单,但嵌套树太深,可能会引起堆栈溢出异常。
///
/// 通过递归方式访问目录树
///
class RecursiveAccessDirectory
{
//声明并实例化一个字符串集合
static System.Collections.Specialized.StringCollection log
= new System.Collections.Specialized.StringCollection();
static void Main()
{
/*该部门代码循环访问本机所有驱动器上的文件
*
*
//返回计算机逻辑驱动器名称的字符串数组
//包括光驱及连接计算机的移动驱动器
string[] drives = System.Environment.GetLogicalDrives();
foreach (string dr in drives)
{
System.IO.DriveInfo di = new System.IO.DriveInfo(dr);
if (!di.IsReady)
{
Console.WriteLine("驱动器 {0} 不能读出", di.Name);
continue;<