用C#代码获取文件夹里及子文件夹所有文件名

有一次去一家医药公司面试,简单面谈后直接抛给2道上机实战题,其中一道题就是用C#获取文件夹里所有文件名,在开发过程中谁记这内容,在某度或者某哥搜索出来就行了,那时小白还很单纯,硬是在答题机上想着答出来,结果只实现了部分功能。这道题还是主要考察对C#语法的熟悉程度,另外如果面试通过工作内容应该更偏向于桌面。本文将介绍如何实现这个功能,并通过代码实例来演示,希望对大家面试或者学习工作有一定的参考价值。.

实现方式    

    在C#中有个特性“Directory”专门处理文件的类,官方解释是“公开用于通过目录和子目录进行创建、移动和枚举的静态方法”。针对这个问题,我们可以使用它下面的GetFiles方法,这个方法有多个重载,我们主要用这个GetFiles(String, String, EnumerationOptions),第一个参数是要搜索的目录,第二个参数是搜索的正则表达式,第三个参数是个枚举,如果是AllDirectories的话遍历所有文件,TopDirectoryOnly仅遍历当前文件夹。代码如下:

 string filepath = "D:\\WEB"; var rel = Directory.GetFiles(filepath, "*", SearchOption.AllDirectories).ToList(); foreach (var file in rel){     Console.WriteLine(file); }

 严谨的话,你可以定义一个方法或者类来实现这个,这将是加分项。另外可以把遍历文件夹的方法写出来,更是加分项。如下代码:

 var rel = Directory.GetDirectories(filepath, "*", SearchOption.AllDirectories).ToList();

Directory特性还有移动文件夹、检索父路径、删除文件夹等功能,可以说它是个文件夹文件操作的工具类,大家感兴趣可以查看官网案例。

结语

    这篇文章介绍了用C#代码获取文件夹里及子文件夹所有文件名的实现方法。实现上机的面试还是比较少,如果遇到熟悉的试题还好,不熟悉的话如果有网络可以到官网搜索解决方案而不是某度,当然最好的办法还是不断的学习提供自己的基础能力。希望本文能给你带来收获,你有啥好的方案吗?欢迎留言讨论。