VB6 DirListBoxについての質問です。
DirListBoxに表示された全ての項目数と各項目の名前を取得するには、どうしたらいいんでしょうか? Dir1.ListCount, Dir1.List(i)ではダメでした。
宜しくお願いします。
>Dir1.ListCount, Dir1.List(i)ではダメでした。
得られた情報を \ で区切れば取得できるので、
ダメでは無いでしょう?
どうダメなんでしょう?
私とれましたけど、、、どういう内容がほしくてどうコーディングしたのか。
取れた結果はどうなのか
特攻隊長まるるう さんが書いておられますが、
例 "c:\a\b\c"の形でとれますので、自分で区切る必要はあると思います。
ああ、一番下のフォルダまで展開しちゃってるときに
.ListCount = 0 で返ってきちゃうねぇ。この時のみ
.Path で処理すれば良さそう。
回答ありがとうございます。
各項目の名前を取得する方法は解かりました。
DirListBoxに表示された全ての項目数を取得するのは、どうするんでしょうか?
Dir1.ListCountは、選択ディレクトリ下のサブディレクトリの数を返す様で、標準ListBoxの.ListCountとは違うみたいです。
>DirListBoxに表示された全ての項目数を取得するのは、どうするんでしょうか?
↓の処理の時に自分で数えるの。各項目を自分で取得しなきゃいけないんだから、当然でしょ?(^^)
>各項目の名前を取得する方法は解かりました。
以下の様になりました。皆様、ありがとうございました。
Private Sub Command1_Click()
Dim strName() As String
Dim i As Integer
Dim intCount As Integer
Dim strDir As String
Dim intCurIndex As Integer
With Dir1
strName = Split(.Path, "\")
strName(0) = strName(0) & "\"
If Len(strName(UBound(strName))) = 0 Then
ReDim Preserve strName(UBound(strName) - 1)
End If
For i = 0 To .ListCount - 1
ReDim Preserve strName(UBound(strName) + 1)
strName(UBound(strName)) = Mid$(.List(i), Len(.Path) + 2)
Next i
intCount = UBound(strName) + 1
For i = 0 To intCount - 1
strDir = .List(.ListCount + i - intCount)
If .Path = strDir Then intCurIndex = i
Debug.Print strName(i), strDir
Next i
End With
End Sub
ツイート | ![]() |