- ベストアンサー
フォルダの中身を列挙する方法
こんにちわ。 VB6.0でプログラムを作る練習をしているのですが、行き詰ったので質問させてください。 やりたいことは・・・ 1.指定したフォルダの中身のファイル名をテキストファイルだけリストBOXに表示。 2.それらテキストファイルの中身を昇順で連結して、新しいファイルを作る。 1はフォルダ参照ダイアログで、フォルダ名を取得。までは出来ました。 続きのフォルダの中身の参照部分がDir関数とforを使うのかな?と思い、MSDNライブラリを見たのですが、いまいちフォルダの中身を列挙する方法が分からないので教えてください。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
よくよく考えたら vbDirectory Or vbHidden Or vbSystem だと通常のファイルは表示されないですね。 vbNormal ですね。 あと、 If (GetAttr(Text1.Text & strDirFile) And vbDirectory) _ And (strDirFile <> "." And strDirFile <> "..") Then って必要なのでしょうか? あと、テキストファイルのみの表示なら Dir$(Text1.Text & "*.txt") でokです。
その他の回答 (3)
- guruguru2
- ベストアンサー率29% (39/132)
#1です。 こんにちわ。 Text1.Textの値を教えてください。 デバッグで strDirFile = Dir$(Text1.Text, vbDirectory Or vbHidden Or vbSystem) の strDirFile の値を確認してみてください。 空なら実際にそのフォルダ内に何も入っていないか Text1.Textの値が間違っているかです。
お礼
Text1.Textの値はユーザー指定したフォルダの名前プラス\マークにしてあります。 たとえば C:\file\sample\ です。
補足
ためしにプログラムを少し変えたら、結果がフォルダ内のテキストファイルがひとつだけ表示されました。 List1.Clear Dim strDirFile As String strDirFile = Dir$(Text1.Text)←ここだけ List1.AddItem strDirFile 'strBMPFile が空になるまで繰り返し Do While strDirFile <> "" If (GetAttr(Text1.Text & strDirFile) And vbDirectory) _ And (strDirFile <> "." And strDirFile <> "..") Then List1.AddItem strDirFile End If strDirFile = Dir$ '次のファイル名に Loop
- guruguru2
- ベストアンサー率29% (39/132)
ごめんなさい。(^^; トップのURLじゃしょーがないですね…。 こっちでどうぞ。
お礼
ありがとうございます。 そこのコードを参考に作ってみたんですが・・・ List1.Clear Dim strDirFile As String strDirFile = Dir$(Text1.Text, _ vbDirectory Or vbHidden Or vbSystem) 'strBMPFile が空になるまで繰り返し Do While strDirFile <> "" If (GetAttr(Text1.Text & strDirFile) And vbDirectory) _ And (strDirFile <> "." And strDirFile <> "..") Then List1.AddItem strDirFile End If strDirFile = Dir$ '次のファイル名に Loop 私の場合はText1.Textにフォルダのパスが入っているので、それでいいと思うのですが実行してもリストになにも表示されません。 どこかまずいところがありますか?
- guruguru2
- ベストアンサー率29% (39/132)
こんにちわ。(^^) 下記のURLを参考にしてみてください。
お礼
ありがとうございました。 無事にテキストファイルだけすべて表示できました。 なぜか同じファイル名が先頭に2つはいってるけど、それはなんとかしてみます。 どうもお世話になりました^^