指定したディレクトリのファイル一覧を取得する

指定したディレクトリのファイル一覧を取得するコードを紹介します。

概要

ディレクトリ内のファイルを取得する場合は、System.IO.Directory.GetFiles() メソッドまたは、Directory.EnumerateFiles()を利用します。

System.IO.Directory.GetFiles を利用する方法

書式

Directory.GetFiles([ファイルを取得するディレクトリのパス]);

UI

下図のUIを準備します。ButtonとTextBoxを配置します。
指定したディレクトリのファイル一覧を取得する:画像1

コード

以下のコードを記述します。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace GetFileList
{
  public partial class FormDirectoryGetFiles : Form
  {
    public FormDirectoryGetFiles()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      string[] files = Directory.GetFiles("c:\\Windows");

      for (int i = 0; i < files.Length; i++) {
        textBox1.Text += files[i] + "\r\n";
      }
    }
  }
}

解説

Buttonをクリックすると、System.IO.Directory.GetFiles()メソッドを呼び出します。 第一引数に対象のディレクトリパスを指定します。 メソッドの戻り値の文字列配列(string[])に指定したディレクトリのファイルのフルパスが格納されます。
forループで戻り値の要素を一つずつTextBoxに出力します。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。
指定したディレクトリのファイル一覧を取得する:画像2

Button1をクリックします。"c:\Windows"ディレクトリ内のファイルのフルパスがTextBoxに表示されます。
指定したディレクトリのファイル一覧を取得する:画像3
指定したディレクトリのファイル一覧を取得する:画像4

Directory.EnumerateFiles を利用する方法

書式

Directory.EnumerateFiles([ファイルを取得するディレクトリのパス]);

UI

下図のフォームを作成します。ButtonとTextBoxを配置します。ボタンは2つ配置されていますが、1つのみ利用します。

指定したディレクトリのファイル一覧を取得する:画像5

コード

以下のコードを記述します。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace GetFileList
{
  public partial class FormDirectoryGetFiles : Form
  {
    public FormDirectoryGetFiles()
    {
      InitializeComponent();
    }

    private void button2_Click(object sender, EventArgs e)
    {
      List<string> files = Directory.EnumerateFiles("c:\\Windows").ToList();

      for (int i = 0; i < files.Count; i++) {
        textBox1.Text += files[i] + "\r\n";
      }

    }
  }
}

解説

Buttonをクリックすると、System.IO.Directory.Directory.EnumerateFiles()メソッドを呼び出します。 第一引数に対象のディレクトリパスを指定します。
戻り値はIEnumerable<string>型となるため、List<string>に代入する場合は、ToList() メソッドを呼び出して変換します。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。
指定したディレクトリのファイル一覧を取得する:画像6

ボタンをクリックします。"c:\Windows"ディレクトリ内のファイルのフルパスがTextBoxに表示されます。
指定したディレクトリのファイル一覧を取得する:画像7
指定したディレクトリのファイル一覧を取得する:画像8

Windows シェルAPI を利用する方法

Windows シェルAPIを利用して指定したディレクトリのファイル一覧を取得する方法についてはこちらの記事を参照してください。


AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2013-11-27
改訂日: 2024-12-25
Copyright © 1995–2025 iPentec all rights reserverd.