public partial class Form1 : Form { string dirblank = ""; string fileblank = " "; string[] sub; int s = 0; FolderBrowserDialog fbd = new FolderBrowserDialog(); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { dirblank = ""; fileblank = " "; listBox1.Items.Clear(); fbd.Description = "フォルダ指定"; fbd.RootFolder = Environment.SpecialFolder.Desktop; fbd.SelectedPath = @"C:\Windows"; fbd.ShowNewFolderButton = true; if (fbd.ShowDialog(this) == DialogResult.OK) { textBox1.Text = fbd.SelectedPath; } //指定ディレクトリの中のサブディレクトリを格納 string[] folder = System.IO.Directory.GetDirectories(fbd.SelectedPath, "*", System.IO.SearchOption.AllDirectories); //指定ディレクトリの中のファイルを格納 string[] file1 = System.IO.Directory.GetFiles(fbd.SelectedPath, "*", System.IO.SearchOption.TopDirectoryOnly); //指定ディレクトリ名を表示 string f = System.IO.Path.GetFileName(fbd.SelectedPath); listBox1.Items.Add(f + "[フォルダ]"); //指定ディレクトリの中のファイルを表示させる FileName(file1,folder); } //指定ディレクトリ、サブディレクトリの中のファイル名を表示させる処理 int x = 0; private void FileName(string[] file, string[] folder) { //各ディレクトリにあるファイルの数だけ処理。 for (int i = 0; i < file.Length; i++) { //ファイル名を表示 file[i] = System.IO.Path.GetFileName(file[i]); listBox1.Items.Add(fileblank + file[i] + "[ファイル]"); } listBox1.Items.Add(""); for (int i = x; x < folder.Length; x++) { file = System.IO.Directory.GetFiles(folder[x], "*", System.IO.SearchOption.TopDirectoryOnly); sub = Directory.GetDirectories(folder[x]); folder[x] = System.IO.Path.GetFileName(folder[x]); dirblank += " "; fileblank = dirblank; fileblank += " "; listBox1.Items.Add(dirblank + folder[x] + "[フォルダ]"); x++; FileName(file, folder); } } } }