• ベストアンサー

VB ファイル一覧表示について

VB初心者です。 現在、指定したフォルダのサブフォルダを含むファイル名一覧を表示したものを作りたいと思い、試行錯誤しております。 ファイル名は、指定したフォルダ以下のパスで表示したものを作りたいと思っているのですが、どうしてもフルパスで表示されてしまいます。 現在、自分が書いているプログラムに拘ろうと思っていませんので、どなたかフルパスではないファイル名一覧表示方法を教えていただけないでしょうか。 環境は、Windows XP 、Microsoft Visual Studio 2008 Express Editionです。 ファイル名一覧表示は、ListViewかListBoxで考えています。 よろしくお願いいたします。

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

  • ベストアンサー
  • shut0325
  • ベストアンサー率40% (490/1207)
回答No.2

これらのメソッドを使うとよいかと思います。 System.IO.Directory.Directorys(path) System.IO.Directory.GetFiles(path) System.IO.Path.GetFileName(path) つたないですが、サンプルです。(フォームにlistbox1及びButton1があると想定) フルパスでないファイル名、フォルダ(ディレクトリ名)を取得してそれをひっつけてリストボックスに書き込みする、、、という感じを想定しています。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim dirpath As String = "c:\" For Each dirpath In System.IO.Directory.GetFiles(dirpath) ListBox1.Items.Add(dirpath & System.IO.Path.GetFileName(dirpath)) Next End Sub

FREX1888
質問者

お礼

回答ありがとうございます。 まだメソッドの意味を一つ一つ覚えながらの作業をしているので、大変助かりました。 ぜひ、これを参考にして作ってみたいと思います。

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>現在、自分が書いているプログラムに拘ろうと思っていませんので コードがないので何とも言えないですが、 例えばフルパスからファイル名を取り出せばいいのでは? のサンプル。  Dim st As String  st = "C:\aaa\bbb\ccc\ddd.txt"  MsgBox(st.Remove(0, st.LastIndexOf("\") + 1)) ご参考になれば。

FREX1888
質問者

お礼

回答ありがとうございました。 参考にさせていただきます。

関連するQ&A

  • ファイルの一覧を取得して配列に入れるには(VB2005)

    VisualBasic2005でプログラミングの勉強を始めましたが、配列のところで躓いてしまいました。 現在やりたいことは、ListBoxとDataGridViewにそれぞれ取得したファイルのファイル名を一覧を表示し、項目クリックでそのファイルを開くことです。(DataGridViewのほうは、ファイルの一覧だけでなく、項目を分けてパスやファイルサイズなども表示させたいと思います)。 まずListBoxのほうですが、検索して次のような方法が見つかりました。 ListBox1.DataSource = _ My.Computer.FileSystem.GetFiles("パス",FileIO.SearchOption.SearchTopLevelOnly,"*.拡張子") そのままコピーして利用してみたのですが、直接リストボックスに一覧を取得し、パスも含めた文字列が表示されてしまいました。リストボックスにはパスと拡張子を除いたファイル名だけを一覧表示したいです。それで、各文字列を操作するためにはまず取得したファイル一覧を配列かコレクションに格納しなければならないと思うのですが、この方法がどうしてもわかりません(また、配列とコレクションではどちらが相応しいでしょうか)。 また、DataGridViewでもパスやサイズも含めた一覧を表示し、同様にクリックで開けるようにしたいと思います。この場合も、まず多次元配列に検索結果を入れると思うのですが、データを入れた配列から、DataGridViewに表示させる方法も合わせて教えていただきたく思います。 以上のことについて、アドバイスまたは方法をご教授ください<(_ _)> 検索していると、 DataGridView1.datasource = DataTable ListBox1.datasource = ~~~ などという例が多いのですが、DataTableやdatasourceと配列はどのような関係にあるのでしょうか?DataTableのデータを配列に入れたり、またその逆だったりは簡単に出来ないものでしょうか。 このあたりがどうも理解不足で、応用力もつけたいので、どのあたりを勉強すればよいのかも教えて頂けると助かります。初心者用の参考書と、逆引き大全500は一通り読んでみました。

  • VB.NETで.xlsファイル読み取り

    dataGridViewにあるフォルダ内の複数.xlsファイルを読み取りして表示したいです。一件の固定パスだったら、できましたけど、複数件は。。。? イメージ図も添付いたします。 よろしくお願いします。 環境: Windows XP Visual studio 2005 VB.NET

  • スタートの全てのプログラムでVBとc++が少し違う

    ・Microsoft Visual Basic 2008 Express Edition ・Microsoft Visual C++ 2008 Express Edition の2つをインストールしました。 しかしスタートの全てのプログラムを見ると C++ の方はフォルダにはいっていて、 VBの方はそのまま(裸のまま)プログラム一覧に表示されています。 Visual C++ の方はフォルダの中身は ・Microsoft Visual C++ 2008 Express Editionのアプリケーションと ・Visual Studio Toolsフォルダです。 Visual Studio Toolsの中には Visual Studio 2008 コマンド プロンプト が入っています。 これは標準の配置ですか? もしかしたら私が知らぬ間にいじったのか気になります。 OSはvistaです。 よろしくお願いします。

  • VB6.0 FileListBoxでフォルダ表示

    VB6.0 ファイルシステムコントロールを使用して各ListBox (DriveList/DriList/FileList)を組み合わせています。 この内、DriListで選択したフォルダのファイル表示に File1.Path = Dir1.Path をDir1のChange時に入れています。 このままだと、Dir1選択でFile1にファイルのみが表示されます。 これをこの中に含まれるフォルダも表示させることは 出来ないでしょうか? ご教授願います。 (ステートメントなどを記述していただけると助かります)

  • ListViewコントロールでサムネイル画像を一覧表示するには?

    VB初心者です。 .NET TIPSの中に「ListViewコントロールでサムネイル画像を一覧表示するには?」というものがありました 今回、それを利用してサムネイル一覧の表示をしようとして行き詰りました。 作りたいのは以下のものです ○決まったサイズの画像(bitmap)を表示し、その下にファイル名(フルパスでは無い)を表示し、更にその下に元の画像のサイズを表示するようなものを作成したいのですが、作成可能でしょうか? また、作成可能な場合、どういった方法で作成したら良いか教えて下さい。 行き詰ったのは、第一段階の、サムネイル画像のしたのファイル名の所です。 よく分からずに ListView1.Items.Add(bmpFiles(i), i)の所を Dim bmpFileName As String = _ Path.GetFileNameWithoutExtension(bmpFiles(i)) ListView1.Items.Add(bmpFileName) bmpFileName(ファイル名のみ)に変更したら、ファイル名は表示されるのですが、画像が表示されませんでした。 次に両方書いたのですが画像の下にフルパスその横にファイル名が表示されます。 Dim bmpFileName As String = _ Path.GetFileNameWithoutExtension(bmpFiles(i)) ListView1.Items.Add(bmpFiles(i), i) ListView1.Items.Add(bmpFileName) 色々調べてみたのですが、思ったような記述が無かったのでここで質問させて頂きました。 拙い質問なので分かり難いかと思いますがアドバイスをよろしくお願いいたします。

  • ListViewでのリスト表示(初歩的な質問です)

    WinXP Pro VB6.0で開発を行っています。 現在、ドラッグ&ドロップにより、ListViewでファイルのパスをリスト表示するプログラムを作成しています。 ListBoxではなくListViewを利用する理由は、パスの長さに合わせてスクロールバーを表示したいためです。 そこで、ドラッグ&ドロップイベントでファイルのパスを取得することは出来たのですが、単純なリスト表示ができません。 ListView1.ListItems.Add(, , tmpPath) でパスを追加しているのですが、プロパティの設定がよく分からずうまく表示できません。 Viewを2-lvwLstに変更し、何となく表示はしているのですが2列表示になり、縦のスクロールバーが表示されません。 なお、表示の際、ヘッダ部分は必要ありません。 また、パスのみの表示であるため、一項目の表示です。 プロパティの設定例を教えていただけませんか? 非常に初歩的な質問ですがよろしくお願いします。

  • エクスプローラーに表示されているきれいなアイコン

    お世話になります。 Visual Studio 2015 VB.net Window 10 Pro 上記にて開発しております。 エクスプローラーで任意のフォルダを開き、例えばそこにPDFファイルがあった場合には、きれいなアイコンで表示されています。 VB.Net のWindowsフォーム上にListViewを配置して、System.Drawing.Icon.ExtractAssociatedIcon にてファイルのアイコンイメージを取得してListViewに表示されても、なんていうか汚いアイコンしか表示できません。おそらく違う場所にあのきれいなアイコンが登録してあって呼び出し方も違うのかなと思うのですが、ご存じの方がいらっしゃいましたら何卒ご教授いただければと存じます。 (1) 同じアイコンだけどイメージの作り方が悪いから汚く表示される? (2) 違う方法で、違うアイコンがあり、それを取得すればきれいなアイコンを表示できる? (3) 上記2つ以外の方法がある? 何卒よろしくお願い申し上げます。

  • ファイルのドラッグアンドドロップ

    Visual C++6.0で ListBOX上にファイルをドラッグアンドドロップ させて、そのファイルのパスの一覧を取得したいのですが どのようにすればいいのでしょうか?

  • ファイルのパスを動的に取得

    現在Visual Studio 6.0 Professional Editionを使って開発をしています。 その中でiniファイルを使う部分があるのですが、 現在はiniファイルまでのフルパスを直書きしています。 しかし、そのパスを動的に取得したいのです。 イメージ↓ フォルダA | Liniファイル ←☆の位置からこのパスを取得したい | フォルダB   LEXE☆ ←ここから まだまだ技術的な力が足りず、どうしたらいいのかさっぱりわかりません。 そこで皆さんの知恵を借りたいのです。 よろしくお願いします。 サンプルでもサイトでもなんでも構いません。

  • Listboxで選んだファイルの表示

    すみませんがまた質問させてください。 OS Vista ブラウザ IE7 Visual Basic 2005 Express Edition やりたいこと Listbox1から選んだ画像ファイルをPictureBox1に表示させてtextbox1に画像ファイルの場所を表示させたい。 どうすればいいでしょうか。ご教授ください。

専門家に質問してみよう