限定しりとり

開発環境:VB2008

VB初心者です。

ディレクトリ指定してリストボックスにディレクトリ内のファイル名を書き出すプログラムを作成しました。

その後、チェックボックスでtxtやdocなど拡張子を指定し、ボタンを押すとそのチェックした拡張子を含むファイル名だけリストボックスに書き出す処理のところで詰まっています。

やり方が悪いのかもしれません。別の簡単な方法があるのでしょうか。
どなたかサンプルでも書いていただけたらうれしいです。
よろしくお願いいたします。

A 回答 (2件)

既に書かれている回答でも問題無さそうでは ありますが、(見かけ上)他の


やり方もありますので、書いておきます。
System.IO.Path.GetExtension(fileName)
でも同様のことが可能です。(内部的には同じ事をしているようですが…)

ファイル名がString配列に入っているならば
Dim fileNames() As String
(ここでファイル名を配列に格納)
For Each fileName As String In fileNames
If System.IO.Path.GetExtension(fileName).ToLower = ".txt" Then
ListBox1.Items.Add(fileName)
End If
Next
みたいな感じで、または判定元のファイル名もListBoxに入っているなら
For Each itm As Object In ListBox1.Items
If System.IO.Path.GetExtension(itm.ToString).ToLower = ".txt" Then
ListBox2.Items.Add(itm.ToString)
End If
Next
みたいな書き方で可能かと思います。
For Each とか、String.ToLower とか、Object.ToString とか、
分からない部分があったら、別途ヘルプ等で調べてみてください。
    • good
    • 0
この回答へのお礼

大変わかりやすくて理解できました!
ありがとうございました。

お礼日時:2008/07/04 10:19

例えばファイル名をfileNameというString型の変数に格納したとします。


その時、そのファイルの拡張子("."を含む)は
fileName.Substring(fileName.LastIndexOf("."c))
で得られます。

例えば、拡張子が".txt"の場合のみListBoxに加える、という場合は
If fileName.Substring(fileName.LastIndexOf("."c)).Equals(".txt") Then
ListBox.Add(fileName)
End If
になります。
    • good
    • 0
この回答へのお礼

なるほど・・・
無事コンパイルできたようです!
ありがとうございました。

お礼日時:2008/07/04 10:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!