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


    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.        }  
  • 相关阅读:
    js 第四课
    斐波那契数列(Fibonacci)(递归,非递归)(动态规划,自顶向下,自底向上)
    八种方法计算字符串中特定字符的数量
    谁做对了?
    数组问题
    关于“ORA12988: 无法删除属于 SYS 的表中的列”
    两条路,此人如何问甲乙问题?才能走向京城
    学了快二月的Nhibernate
    温故知新,把牢基础~
    用键盘选择复选框
  • 原文地址:https://www.cnblogs.com/web100/p/csharp-get-local-file.html
Copyright © 2020-2023  润新知