- ベストアンサー
C#でフォルダを参照してリストボックスに表示する方法は?
- C#でフォルダを参照してリストボックスに表示する方法についてアドバイスをお願いします。
- ボタンをクリックした時に指定したフォルダの内容をリストボックスに表示するC#のプログラムが理解できません。
- FolderBrowserDialogを使ってフォルダを参照する方法について教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
EnvironmentオブジェクトのGetFolderPathメソッドを呼び出す際に、引数にEnvironment.SpecialFolder.Systemを指定すると、ウィンドウズシステムフォルダの絶対パスが返って来ます。例えば、C:\Windows\System32などが返って来ます。 参考URL http://dobon.net/vb/dotnet/file/getfolderpath.html にある通り、GetFolderPathメソッドの引数を色々と変更すると「お気に入り」や「マイドキュメント」のフォルダの絶対パスも拾えます。 以上を踏まえた上で、サンプルでは、ウィンドウズシステムフォルダを取得してリストを作っています。 実は「フォルダ内のファイルリストを作るサンプル」としては「システムフォルダ」ではなく「お気に入り」や「マイドキュメント」や「ディスクトップ」でも、以下のように「C:\temp」でも、どこのフォルダでも構わないのです。 private void button1_Click(object sender, System.EventArgs e) { string getFolder = "C:\\temp"; DirectoryInfo di = new DirectoryInfo(getFolder); foreach(FileInfo fi in di.GetFiles()) { listBox1.Items.Add(fi.Name); } } サンプルとしては、存在してさえいれば特にどこのフォルダでも構わないので、実行結果に「リストにファイルがたくさん出て来る」ようにする為、システムフォルダを例題に使っただけでしょう。 もし「お気に入り」や「マイドキュメント」にファイルが何も入っていなかった場合リストに何も出てこないですし、もし上記のように「C:\temp」とかフォルダ位置を直書きすると「C:\temp」が無かった時にエラーになってサンプルとして相応しくない物になってしまいます。 そこで「どのWindows(Win98とかWinXPとかWin2000とか)でも必ず存在するフォルダで、しかも、フォルダの中にファイルが沢山入っている所、つまりウィンドウズシステムフォルダ」をサンプルに使った訳です。
お礼
お早い回答ありがとうございました^^ 私でも理解できました。HPも参考にさせてもらいます。お世話様でした。