玄関へお回り下さい。
指定フォルダー以下のサブフォルダー内を含めた総ファイル数を取得      (SNo.025)
使用コントロール Button3  FolderBrowserDialog1
その他条件 WindowsXP(Vista) Visual Basic 2005(VB2008)
Imports System.IO  をモジュールの先頭に記述しておいて下さい。 
★ 指定フォルダー以下のファイル数を取得
 
Public Shared Function GetDirFileCount(ByVal d As System.IO.DirectoryInfo) As Long
'指定フォルダー以下のファイル数を取得する関数
'Imports System.IO  をモジュールの先頭に記述しておいて下さい。
'エクスプローラーのフォルダーのプロパティの全般のところで表示しているファイル数と同じ
    Dim fCount As Long = 0
    Dim fis As FileInfo() = d.GetFiles()
    'フォルダー内のファイル数をカウント
    fCount = fis.Length
    Dim dis As DirectoryInfo() = d.GetDirectories()
    Dim di As DirectoryInfo
    'サブフォルダー内のファイル数を合計する
    For Each di In dis
        fCount += GetDirFileCount(di)
    Next di
    Return fCount
End Function


上記関数使用例

Private Sub Button3_Click(ByVal sender As System.Object, _
                         
ByVal e As System.EventArgs) Handles Button3.Click
'指定フォルダー以下(サブフォルダー内含む)の全ファイル数を取得する
'Imports System.IO  をモジュールの先頭に記述しておいて下さい。
    'フォルダー名を取得
    FolderBrowserDialog1.ShowDialog()
   
Dim FolderName As String = FolderBrowserDialog1.SelectedPath
   
Dim di As DirectoryInfo = New DirectoryInfo(FolderName)
    'ファイル数を取得(関数の実行)
   
Dim sumFile As Integer = GetDirFileCount(di)
    MessageBox.Show(sumFile & " ファイルありました。")
End Sub
ファイル及びフォルダー関係の操作の場合は、Imports System.IO  をモジュールの先頭に記述するか、事前に追加しておく事をお薦めします。




2004/05/09
2005/09/11


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