可以利用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");
阅读(1023) | 评论(0) | 转发(0) |