c# 递归异步获取本地驱动器下所有文件_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > c# 递归异步获取本地驱动器下所有文件

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

 2013/11/20 23:29:28  web8  博客园  我要评论(0)
  • 摘要://获取所有驱动器string[]drives=Environment.GetLogicalDrives();foreach(stringdriverindrives){Console.WriteLine(driver);//驱动器信息DriveInfodi=newDriveInfo(driver);//是否准备好Console.WriteLine("isRead:"+di.IsReady);//名称Console.WriteLine("name:"+di.Name)
  • 标签:C# 文件 递归 异步
    class="dp-c" start="1">
  1. //获取所有驱动器  
  2.            string[] drives = Environment.GetLogicalDrives();  
  3.            foreach (string driver in drives)  
  4.            {  
  5.                Console.WriteLine(driver);  
  6.                //驱动器信息  
  7.                DriveInfo di = new DriveInfo(driver);  
  8.                //是否准备好  
  9.                Console.WriteLine("isRead:" + di.IsReady);  
  10.                //名称  
  11.                Console.WriteLine("name:" + di.Name);  
  12.                //驱动器根目录  
  13.                DirectoryInfo root = di.RootDirectory;  
  14.                RecursiveAsync(root);  
  15.                Console.WriteLine();  
  16.            }  
  17.            Console.ReadKey();  

//方法体

 

  1. private async static void RecursiveAsync(DirectoryInfo root)  
  2.        {  
  3.            await Task.Run(() =>  
  4.            {  
  5.                try  
  6.                {  
  7.                    //得到所有文件  
  8.                    FileInfo[] fis = root.GetFiles("*.*");  
  9.                    if (fis != null && fis.Length > 0)  
  10.                    {  
  11.                        foreach (FileInfo fi in fis)  
  12.                        {  
  13.                            //文件名  
  14.                            string name = fi.FullName;  
  15.                            name = name.Length > 100 ? name.Substring(0, 100) + "…" : name;  
  16.                            Console.WriteLine(name);  
  17.                        }  
  18.                    }  
  19.                    //获取子目录  
  20.                    DirectoryInfo[] dis = root.GetDirectories();  
  21.                    //存在子目录  
  22.                    foreach (DirectoryInfo di in dis)  
  23.                    {  
  24.                        //递归子目录  
  25.                        RecursiveAsync(di);  
  26.                    }  
  27.                }  
  28.                catch (Exception e)  
  29.                {  
  30.                    Console.WriteLine(e.Message);  
  31.                }  
  32.            });  
  33.        }  
发表评论
用户名: 匿名