C# 開発

C# ディレクトリ配下のすべてのファイルを取得する

準備

(なし)

デザイン

  • フォーム (Form1) にボタン (button1) を配置します。
  • フォーム (Form1) にリストボックス (listBox1) を配置します。

サンプルコード (C#)

namespace WinFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var di = new DirectoryInfo(@"C:\Buffalo");
            FileGet(di);
        }

        private void FileGet(DirectoryInfo dir)
        {
            foreach (var item in dir.GetDirectories())
            {
                FileGet(item);
            }

            foreach (var item in dir.GetFiles())
            {
                listBox1.Items.Add(item.FullName);
            }
        }
    }
}

解説

指定したディレクトリ下のすべてのファイルを出力します。サブディレクトリがあれば、その下も対象とします。ここでは FieGet メソッドによりファイルの出力が行われますが、サブディレクトリが存在すれば、何度でも自分自身を呼び出します。これが再起呼び出しです。そして、サブディレクトリがまったく存在しないときに、ファイルを出力します。

結果

動作確認環境

Visual Studio 2022 Professional (.NET 7 C#11)

ログ

初版:2016.04.28 Visual Studio 2015 Professional (C# 6.0)

-C# 開発