作成 2010.01.21
更新 2010.01.22
更新 2010.01.22
VBScript でユーザー プロファイル フォルダのサイズを取得する
エラーメッセージ
Windows Vista, 7 では Folder オブジェクトの Size プロパティを取得する際、以下のエラーが表示されることがある。
プロファイル フォルダやフォルダ リダイレクトの対象がこれに該当する。
エラー: 書き込みできません。 コード: 800A0046 ソース: Microsoft VBScript 実行時エラー
コード
やり方がわからなかったので力技で。
Option Explicit
Dim FSO, WshShell, objFolder
Dim strProfilePath
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
strProfilePath = WshShell.ExpandEnvironmentStrings("%USERPROFILE%")
Set objFolder = FSO.GetFolder(strProfilePath)
WScript.Echo GetFolderSize(objFolder)
Function GetFolderSize(fld)
Dim size_sum, f1
On Error Resume Next
size_sum = fld.Size
If Err.Number <> 0 Then
On Error Goto 0
size_sum = 0
For Each f1 in fld.SubFolders
If (f1.Attributes And 1024) = 0 Then
size_sum = size_sum + GetFolderSize(f1)
End If
Next
For Each f1 in fld.Files
size_sum = size_sum + f1.Size
Next
End If
On Error Goto 0
GetFolderSize = size_sum
End Function
タグ: VBScript