指定したディレクトリのファイル一覧を取得するコードを紹介します。
ディレクトリ内のファイルを取得する場合は、System.IO.Directory.GetFiles()
メソッドまたは、Directory.EnumerateFiles()
を利用します。
Directory.GetFiles([ファイルを取得するディレクトリのパス]);
下図のUIを準備します。ButtonとTextBoxを配置します。
以下のコードを記述します。
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に出力します。
プロジェクトを実行します。下図のウィンドウが表示されます。
Button1をクリックします。"c:\Windows"ディレクトリ内のファイルのフルパスがTextBoxに表示されます。
Directory.EnumerateFiles([ファイルを取得するディレクトリのパス]);
下図のフォームを作成します。ButtonとTextBoxを配置します。ボタンは2つ配置されていますが、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 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()
メソッドを呼び出して変換します。
プロジェクトを実行します。下図のウィンドウが表示されます。
ボタンをクリックします。"c:\Windows"ディレクトリ内のファイルのフルパスがTextBoxに表示されます。
Windows シェルAPIを利用して指定したディレクトリのファイル一覧を取得する方法についてはこちらの記事を参照してください。