ListBox Directory

C# で Directory を検索して、ファイル一覧を ListBox に表示します。
上の画像は Windows(C++)のものです。今回は EditControl やボタンは使っていないので悪しからず。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プロジェクトの設定

  1. C# には Directory(フォルダー)を検索する便利なメソッドが用意されています。
    これを使って、サブフォルダーの中まで検索してファイル一覧を表示します。
  2. 空のプロジェクトを作成して下さい。
    詳細は Form を作成する を参照して下さい。
    [デザイン] を表示して、[ツールボックス] から [ListBox] をフォームに貼り付けます。
  3. MyForm の Constructor から InitializeComponent() を呼び出します。
    Load をデリゲート(委譲)して ListBox に登録するので、イベントハンドラ(MyForm_Load)を設定して下さい。
    Paint はウインドウに描画する必要が生じたときに何度も呼び出されます。
    それに対して Load は FORM がロードされるときに一度だけ呼び出されます。
        public MyForm()
        {
            InitializeComponent();
            Load += new System.EventHandler(MyForm_Load);
        }
        
  4. MyForm_Load() で Directory(フォルダー)を検索して ListBox に登録します。
    事前に C:\test のフォルダーを作成して、適当なファイルを格納しておいて下さい。
    System.IO.Directory.GetFiles() でフォルダーを検索します。
    listBox1.Items.AddRange() で ListBox に登録します。
        private void MyForm_Load(object sender, System.EventArgs e)
        {
            string[] files = System.IO.Directory.GetFiles(
                @"C:\test", "*", System.IO.SearchOption.AllDirectories);
            listBox1.Items.AddRange(files);
        }
        
  5. Directory.GetFiles() に代えて Directory.GetFileSystemEntries() を使うとサブフォルダーは検索されません。
        private void MyForm_Load(object sender, System.EventArgs e)
        {   //C:\test を検索する
            string[] files = System.IO.Directory.GetFileSystemEntries(@"C:\test", "*");
            //ListBox1 に結果を表示する
            listBox1.Items.AddRange(files);
        }
        
  6. Windows(C++) でも同様のプログラムを作成しています。
    超初心者のプログラム入門(Windows)から フォルダーを検索して List Box に表示 を参照して下さい。

超初心者のプログラム入門(C# Frame Work)