指定フォルダー以下のサブフォルダー数を取得及びフォルダー名を列挙 (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 |