Chinaunix首页 | 论坛 | 博客
  • 博客访问: 212466
  • 博文数量: 43
  • 博客积分: 3010
  • 博客等级: 中校
  • 技术积分: 660
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-11 11:49
文章分类

全部博文(43)

文章存档

2009年(39)

2008年(4)

我的朋友

分类: C/C++

2008-03-11 12:56:45

可以利用DirectoryInfo来得到目录下的文件列表GetFiles()和子目录列表GetDirectories
(),这样可以对子目录用递归来继续遍历。
public void FindAllFile(string path)
     {
         DirectoryInfo[] ChildDirectory;//子目录集
         FileInfo[] NewFileInfo;//当前所有文件
         DirectoryInfo FatherDirectory=new DirectoryInfo(path); //当前目录
         ChildDirectory=FatherDirectory.GetDirectories("*.*"); //得到子目录集
         NewFileInfo=FatherDirectory.GetFiles();//得到文件集,可以进行操作
         foreach(DirectoryInfo dirInfo in ChildDirectory)
         {
              FindAllFile(dirInfo.FullName);
         }
      }
 
using System;
using System.IO;

//目录遍历

static public void ListDirectory(string strFullPathName)
{
    DirectoryInfo dir = new DirectoryInfo(strFullPathName);
    DirectoryInfo[] dirSubs = dir.GetDirectories();

    //遍历子目录
    foreach(DirectoryInfo dirSub in dirSubs)
    {
        if((dirSub.Attributes & FileAttributes.System) == FileAttributes.System)
            Console.Write("[系统目录]");

        if((dirSub.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
            Console.Write("[隐藏目录]");

        // 输出目录名
        Console.WriteLine(dirSub.FullName);

        // 递归调用ListDirectory
        ListDirectory(dirSub.FullName);
    }

    //获取目录中的文件

    FileInfo[] files=dir.GetFiles();
    foreach(FileInfo file in files)
    {
        if((file.Attributes & FileAttributes.System) == FileAttributes.System)
            Console.Write("[系统文件]");

        if((file.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
            Console.Write("[隐藏文件]");

        // 输出文件名
        Console.WriteLine(file.Name);
    }
}

// 调用
ListDirectory("c:\windows");
阅读(1008) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~