• ベストアンサー

C#でカレントディレクトリ以下のディレクトリを検索方法

C#でカレント以下のディレクトリ内のファイルを抽出して、リストボックスに表示させるプログラムを書きたいのですが、良いサンプルはありますか? VBからの転向で構文を理解していないので、これを雛形にしてC#を覚えていきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

(良いかどうかは知りませんが)サンプルを作ってみました。 このまま動かせるように作ってあります。 例えば、filesList.cs という名前で保存したら コマンドプロンプトで csc filesList.cs filesList でコンパイル・実行できます。 カレントディレクトリ内のディレクトリについては、 FileSystemInfo[] dirs = di.GetDirectories(); foreach (DirectoryInfo diNext in dirs) { //ここでそれぞれのディレクトリの処理をする } みたいな感じでやればいいと思います。 再帰的に処理するといいでしょう。 VBでできてたんだったら、これぐらいの説明でいいかと思いました。 分からない部分は、補足要求して下さい。 ---------------------------------------------------------------- using System; using System.IO; using System.Windows.Forms ; using System.Drawing ; using System.Collections ; namespace Bluepixy { public class FilesListBox : Form { private ListBox ListBox1 = new ListBox(); [STAThread] static void Main(){ Application.Run(new FilesListBox()) ; } public FilesListBox(){ this.AutoScaleBaseSize = new Size(5, 13) ; this.ClientSize = new Size(292, 300) ; this.Text = "File List on ListBox" ; ListBox1.Location = new Point(24, 16) ; ListBox1.Name = "ListBox1" ; ListBox1.Size = new Size(232, 130) ; this.Controls.AddRange(new Control[] {ListBox1}) ; DirectoryInfo di = new DirectoryInfo(Environment.CurrentDirectory);//カレントディレクトリ FileInfo[] fi = di.GetFiles(); foreach (FileInfo fiTemp in fi) ListBox1.Items.Add(fiTemp.Name); } private void InitializeComponent() { } } }

関連するQ&A