• ベストアンサー

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

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

  • binma
  • お礼率14% (11/78)

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

  • ベストアンサー
  • 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

  • カレントディレクトリについて

    MS-DOSの頃、Basicプログラミングではカレントディレクトリというのが重要・便利でした。 さて、現在のWindowsのVBプログラムでは、このカレントディレクトリはどの様に扱えば良いのでしょう? MS-DOSの時と同じ扱いで良いとか、全く考えない方が良いとか、こんな場合は考慮すると便利ですよとか。 色々意見を聞かせて下さい。

  • Windows 7でのカレントディレクトリについて

    エクスプローラからPerlを起動する際のカレントディレクトリが、Windows 7 (x64) と Windows XPで違ってしまいます。 Windows XPの場合は起動した.plファイルの場所がカレントディレクトリとなり、特に問題はないのですが、Windows7の場合 C:\Windows\System32 がカレントディレクトリになってしまうようです。 以下の前提条件で、Windows 7 でも XPと同様の動作を実現する方法はないでしょうか。 [起動方法] .plファイルを右クリック ⇒「プログラムから開く」⇒ Perl Command Line Interpriter (既定のプログラムはメモ帳に設定) [環境] Windows (7 x64 or XP) + ActivePerl 5.14.2

    • ベストアンサー
    • Perl
  • カレントディレクトリ内のファイルを配列に読むには?

    カレントディレクトリ内のファイルの中で指定した拡張子のファイルを全て配列に読み込ませるプログラムを書こうと頑張っています。 しかし、方針がわからず困っています。 方針だけでも良いので教えていただけないでしょうか? よろしくお願いいたします。

  • コマンドプロンプトでのカレントディレクトリについて。

    WinXPでコマンドプロンプトを使っているんですが、カレントディレクトリを移動する時、cd c:\Program Files ってやりますよね。 Dドライブのlibというフォルダにカレントディレクトリを移したいんですが、cd D:\libとしても、なんの応答もなく元のプロンプト画面のままです。 Dドライブにカレントディレクトリを移動させるというのは、そもそも出来ないものなんですか? 誰か知っている人がいたら教えて下さい。宜しくお願いします。

  • C#でカレントディレクトリの取得方法について

     自作の.exeファイルの置かれているディレクトリ場所を  取得するプログラムを作成したく思います・  自作exeファイルのディレクトリ構造は、「*:*/hoge/plugin/自作.exe」です。  この時、一個上のディレクトリを参照して、ディレクトリパスを取得する  方法などがありましたらおしえて頂きたく思います。  ちなみに、以下のプログラムではできなかったのですが、参考までに載せました。  よろしくお願いします。  string stParentName = System.IO.Path.GetDirectoryName(@"*:*/hoge/plugin/自作.exe"); MessageBox.Show(stParentName);

  • Javaでカレントディレクトリを移動するには?

    Javaの中で、カレントなディレクトリを移動させ、相対PATHで既存ディレクトリを認識させたいのですが、期待する結果が得られません。 Javaの中でカレントディレクトリを移動する場合、System.setProperty()メソッドを利用して、"user.dir"を書き換えれば良いと思ったのですが、間違いでしょうか? 間違いである場合、Javaの中ディレクトリを移動させる方法はあるのでしょうか? 以下のプログラムは、下記状況下にて実行したものです。 C:\Java |-app ←プログラムを実行時にいるフォルダ |-sub ←相対PATHで認識させたい既存フォルダ ----------- ソース -------------------------- import java.io.*; class TestTest { public static void main(String args[]) { System.out.println("Current dir : " + System.getProperty("user.dir")); System.out.println("Move Dir !"); System.setProperty("user.dir","C:\\Java"); System.out.println("Current dir : " + System.getProperty("user.dir")); File f = new File("sub"); System.out.println("Dir existance : " + f.exists()); } } --------------------------------------------- ----------------実行結果---------------------- C:\Java\app>java TestTest Current dir : C:\Java\app Move Dir ! Current dir : C:\Java Dir existance : false ←trueにならない! --------------------------------------------

    • ベストアンサー
    • Java
  • ディレクトリリストボックスについて

    ディレクトリリストボックスのPathプロパティに、"C:"を入れ、一番上の"C:"が選択された状態にしたいのですが、どうしてもVBPファイルのある"C:\programfiles\Microsoftvisualstudio\vb98"になってしまいます. 何かうまい方法はないでしょうか? 教えてください.

  • ショートカットで起動した場合のカレントディレクトリ

    実行ファイルのあるディレクトリに結果を出力するCで書いたプログラムがあります。 この実行ファイルのショートカットを作り、それを起動したところ、結果が手元ではなく、実行ファイルのあるディレクトリに作成されてしまい困っています。 ショートカットをおいたディレクトリに出力するようにするにはどうやったらよいのでしょうか? 実行ファイルのソースリストはありますので、実行ファイルの修正も可能です。 ソースリストを見たところ、結果を出力するファイルは、  fp = fopen("temp.txt", "w"); でファイルをオープンしていました。 なお、実行環境は、WinXPです。 よろしくお願いします。

  • リストボックスから選択した拡張子を含むものを抽出

    開発環境:VB2008 VB初心者です。 ディレクトリ指定してリストボックスにディレクトリ内のファイル名を書き出すプログラムを作成しました。 その後、チェックボックスでtxtやdocなど拡張子を指定し、ボタンを押すとそのチェックした拡張子を含むファイル名だけリストボックスに書き出す処理のところで詰まっています。 やり方が悪いのかもしれません。別の簡単な方法があるのでしょうか。 どなたかサンプルでも書いていただけたらうれしいです。 よろしくお願いいたします。

  • カレントディレクトリ・・・って?

    こんにちは。ネットで検索したのですが知識が無いためさっぱりわからないので質問させていただきます。 今度、中古ノートPCを入手するに当たり、メーカーのHPからアップデートできるものをダウンロードしました。 「BIOSのアップデート」を解凍したところ、セットアップFDを作り、 しかも、その作業をMS-DOS日本語モードでしなければならず悪戦苦闘しています。 自分のPCが日本語モードになっている事はわかりましたので、FDをフォーマットするまでは出来ました。 次の手順が 「アップデートFD作成ツールを実行します。解凍したファイルがあるカレントディレクトリで実行してください」 っと書いてあり、 解凍されて出来たアプリケーション「~.exe」を実行するようなのですが、その部分がさっぱりわかりません。 ネットでカレントディレクトリなどを検索しまくったのですが、解決できませんでした。 それを入力すると 「ドライブAにフォーマットされたFDをセットして下さい。よろしいですか(Y/N) ?」っと表示されるようなのですが・・・。 現在はMS-DOSプロンプトを開くと「C:¥WINDOWS>」っとなっており、 そのままファイル名を入力し実行すると「コマンドまたはファイル名が違います」っと出ます。 アップデートファイルはデスクトップのフォルダにあります。 わたしのPCはVAIO PCV-R60でOSはWindows98です。 どなたかアドバイスよろしくお願いいたします。