玄関へお回り下さい。
指定フォルダー以下のサブフォルダー数を取得及びフォルダー名を列挙 (2個)      (SNo.036)

1.指定フォルダー以下(最下層まで)のサブフォルダー数を取得
2.指定フォルダー以下(最下層まで)のサブフォルダーのパスを列挙
使用コントロール Button1  Button2  Label1  ListBox1
その他条件 WindowsXP(Vista) Visual Basic 2005(VB2008)
 
1.指定フォルダー以下(最下層まで)のサブフォルダー数を取得
2.指定フォルダー以下(最下層まで)のサブフォルダーのパスを列挙

 
Public Shared Function GetSubDirectory(ByVal lb As ListBox, _
                                       ByVal d As System.IO.DirectoryInfo) As Long
'指定フォルダー以下のサブフォルダー数を取得する関数
'エクスプローラーのフォルダーのプロパティの全般のところで表示しているフォルダー数と同じ
    Dim fCount As Long = 0
    Dim dis As System.IO.DirectoryInfo() = d.GetDirectories()
    Dim di As System.IO.DirectoryInfo
    For Each di In dis
    
'下記の部分は目的に合せて(配列に格納するなり)変更して下さい。
        lb.Items.Add(di.FullName)        'サブフォルダーのフルパスをリストボックスに記入
        fCount += GetSubDirectory(lb, di) + 1 'サブフォルダー数をカウントする
    Next di
    Return fCount
End Function


上記関数使用例

Private Sub Button1_Click(ByVal sender As System.Object, _
                         
ByVal e As System.EventArgs) Handles Button1.Click
'フォルダー数及びサブフォルダーのパスを取得する
    ListBox1.Items.Clear()
    Label1.Text = ""
    ListBox1.HorizontalScrollbar = 
True

   
Dim folderName As String
    'フォルダーの参照ダイアログを表示
   
If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then
        'フォルダー名を取得
        folderName = FolderBrowserDialog1.SelectedPath
   
Else
       
Exit Sub
   
End If

   
Dim di As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(folderName)
    'フォルダー数及びサブフォルダーのパスを取得
   
Dim sumDirectory As Integer = GetSubDirectory(ListBox1, di)
    Label1.Text = sumDirectory & " 個のフォルダーがありました。"
End Sub







2004/05/30
2005/09/17


VBレスキュー(花ちゃん)
VB.NET2003  VB2005