您的位置:首页 > 编程语言 > C#

c# 递归异步获取本地驱动器下所有文件

2013-11-20 12:40 1001 查看
//获取所有驱动器
string[] drives = Environment.GetLogicalDrives();
foreach (string driver in drives)
{
Console.WriteLine(driver);
//驱动器信息
DriveInfo di = new DriveInfo(driver);
//是否准备好
Console.WriteLine("isRead:" + di.IsReady);
//名称
Console.WriteLine("name:" + di.Name);
//驱动器根目录
DirectoryInfo root = di.RootDirectory;
RecursiveAsync(root);
Console.WriteLine();
}
Console.ReadKey();

//方法体

private async static void RecursiveAsync(DirectoryInfo root)
{
await Task.Run(() =>
{
try
{
//得到所有文件
FileInfo[] fis = root.GetFiles("*.*");
if (fis != null && fis.Length > 0)
{
foreach (FileInfo fi in fis)
{
//文件名
string name = fi.FullName;
name = name.Length > 100 ? name.Substring(0, 100) + "…" : name;
Console.WriteLine(name);
}
}
//获取子目录
DirectoryInfo[] dis = root.GetDirectories();
//存在子目录
foreach (DirectoryInfo di in dis)
{
//递归子目录
RecursiveAsync(di);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
});
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息