0

ディレクトリとそのサブディレクトリ内のすべてのテキスト ファイルをカウントするコードを作成しようとしています。以下のコードを試しました:

private void button1_Click_1(object sender, EventArgs e)
{
    FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
    DialogResult result = folderBrowserDialog1.ShowDialog();
    if (result == DialogResult.OK)
    {
        string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath);
        MessageBox.Show("Files found: " + files.Length.ToString(), "Message");
    }
}
4

3 に答える 3

3

フォルダー内のTXTファイルとそのサブディレクトリを検索するには、次を使用します。

string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.txt", SearchOption.AllDirectories);
于 2013-10-03T13:29:44.163 に答える
1

ディレクトリをループする必要はありません。このアクションを実行するための .NET 機能が既に存在します。

サブディレクトリを含む特定の拡張子を持つファイルのリストを取得するには、次を使用します。

var files = Directory.EnumerateFiles(srcDir, "*.txt", SearchOption.AllDirectories);
于 2013-10-03T13:32:41.953 に答える
0
FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
DialogResult result = folderBrowserDialog1.ShowDialog();
if (result == DialogResult.OK)
{
    int fileCount = GetFileCount(folderBrowserDialog1.SelectedPath);        
}

親ディレクトリとすべてのサブディレクトリからテキスト ファイル数を再帰的に取得し、

private int GetFileCount(string s)
{
    return Directory.GetFiles(s, "*.txt").Count() + Directory.GetDirectories(s).Select(GetFileCount).Sum();
}
于 2013-10-03T13:28:59.327 に答える