如题,在C#/.NET/.NET Core应用程序编程开发中,如何使用递归列举出一个指定文件夹(目录)中的所有文件呢?
Rector
2020-04-08 提问
在C#/.NET的应用程序编程开发中,Directory类提供了读取文件夹和文件所需要常用方法,比如:Directory.GetDirectories()和Directory.GetFiles()方法可以分别读取指定文件夹和文件的相关信息,那么我们可以使用递归,再调用这两个方法即可实现列举一个任意指定文件夹中的所有文件的操作,如下:
Directory
Directory.GetDirectories()
Directory.GetFiles()
2020-04-08 回答
在.NET 4.0及以上版本中,还提供了更加简捷的读取指定文件夹中所有文件的方法Directory.EnumerateFiles(),使用示例如下:
Directory.EnumerateFiles()
直接使用以上.NET内置的方法虽然比较快捷,但如果需要考虑性能,则可以自己改造,这里使用了队列来尽量避免过多的堆栈递归,示例如下:
在.NET 4.5及以上版本,Directory.GetFiles()除了可以快速地递归列举指定文件夹(目录)的所有文件外,还可指定文件过滤的表达式参数,如下:
调用示例:
使用LINQ的快速实现方式:
码龄: 3145天
专注.NET/.NET Core