读取目录子文件夹中的所有文件

我有一个文件夹 – “C:\ scripts”

在“脚本”中,我有几个子文件夹,例如 – “C:\ scripts \ subfolder1”“C:\ scripts \ subfolder2”等,包含html文件。

我想使用以下代码 –

  foreach (string file in Directory.EnumerateFiles(@"C:\scripts","*.html")) { string contents = File.ReadAllText(file); } 

但是由于html文件位于子文件夹中,因此无效。

如何访问子文件夹中的html文件而无需手动放入每个子文件夹的路径?

使用DirectoryInfo中的这个重载

 var dir = new DirectoryInfo(@"c:\scripts"); foreach(var file in dir.EnumerateFiles("*.html",SearchOption.AllDirectories)) { } 
 Directory.EnumerateFiles(@"C:\scripts","*.html",SearchOption.AllDirectories) 

似乎是我正确的解决方案尝试:)

也许这有效吗?

 foreach (string file in Directory.GetFiles("C:\\Scripts\\", "*.html", SearchOption.AllDirectories)) { string contents = File.ReadAllText(file); } 

来自SearchOption.AllDirectories

在搜索操作中包含当前目录及其所有子目录。 此选项包括重新分析点,例如搜索中已安装的驱动器和符号链接。

试试这样;

 var d = new DirectoryInfo(@"c:\scripts"); foreach(var fin d.EnumerateFiles("*.html", SearchOption.AllDirectories)) { }