3

フォルダーがあります-「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 ファイルにアクセスするにはどうすればよいですか?

4

4 に答える 4

4

DirectoryInfo からのこのオーバーロードを使用します

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

}
于 2013-03-12T14:12:46.493 に答える
0
Directory.EnumerateFiles(@"C:\scripts","*.html",SearchOption.AllDirectories)

私にとっては正しい解決策のようです:)

于 2013-03-12T14:13:12.323 に答える
0

多分これはうまくいきますか?

foreach (string file in Directory.GetFiles("C:\\Scripts\\", "*.html", SearchOption.AllDirectories))
{
    string contents = File.ReadAllText(file);
}
于 2013-03-12T14:13:31.687 に答える
0

からSearchOption.AllDirectories

現在のディレクトリとそのすべてのサブディレクトリを検索操作に含めます。このオプションには、マウントされたドライブやシンボリック リンクなどの再解析ポイントが検索に含まれます。

このようにしてみてください。

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

}
于 2013-03-12T14:14:14.727 に答える