Option Explicit
Dim objApl
Dim objFolder
Dim objFolderItems
Dim numFolderSize
Dim numFileCount
Dim numFolderCount
numFolderSize=0
numFileCount=0
numFolderCount=0
'①シェルアプリケーションオブジェクトを作成します
Set objApl = WScript.CreateObject("Shell.Application")
'②探りを入れたいフォルダのオブジェクトを作成します
'Set objFolder = objApl.NameSpace("i:\r")
Set objFolder = objApl.NameSpace("\\127.0.0.1\r")
'③フォルダオブジェクトから、入っているファイルや
' フォルダの情報を取得します
Set objFolderItems = objFolder.Items()
'フォルダの検索処理の呼び出し
Call prcFolderSize (objFolderItems)
'結果の表示。総容量、総ファイル数、総フォルダ数を表示
WScript.Echo "フォルダC:\happyの容量は、約" & numFolderSize & "バイトです"
WScript.Echo "フォルダC:\happyのファイル数は、約" & numFileCount & "個です"
WScript.Echo "フォルダC:\happyのフォルダ数は、約" & numFolderCount & "個です"
Set objFolderItems = Nothing
Set objFolder = Nothing
Set objApl = Nothing
'==============================================================
'= フォルダ内に含まれるファイルやフォルダを検索する
'==============================================================
Sub prcFolderSize(tmpFolderItems)
Dim objFolderItemsB
Dim objItem
Dim i
'④何個入っていたかは、Countで参照
For i=0 To tmpFolderItems.Count-1
'⑤ファイルやフォルダの情報を1コ取り出します
Set objItem = tmpFolderItems.Item(i)
'⑥取り出した物がファイルかフォルダかを判定
If objItem.IsFolder Then
'⑦フォルダであれば、フォルダアイテムオブジェクトを
' 作り、それを引数としてprcFolderSizeを再帰呼び出します
Set objFolderItemsB = objItem.GetFolder
Call prcFolderSize (objFolderItemsB.Items())
numFolderCount = numFolderCount + 1
Else
'⑧ファイルの場合は、サイズとファイル数を集計します
numFolderSize = numFolderSize + objItem.Size
numFileCount = numFileCount + 1
End If
Next
Set objItem = Nothing
Set objFolderItemsB = Nothing
End Sub