指定したフォルダの種類、サイズ、属性を取得する。
FileSystemObjectのGetFolderメソッドを利用して指定のフォルダの種類、サイズ、属性を取得することができます。
GetFolderには下記の引数が設定できます。
| 引数名 | 説明 | 省略 | |
| 第1引数 | folderspec | 確認対象のフォルダのパスを指定 | 不可 |
フォルダの種類、サイズ、属性の情報はGetFolderメソッドで取得したオブジェクトのプロパティから取得できます。
サイズは指定のフォルダの中にあるファイルすべての合計値となります。
第1引数で指定したパスに実在しないフォルダを指定した場合はエラーとなります。
'******************************************************************
' フォルダの種類、サイズ、属性を取得
'******************************************************************
Sub Main_GetFolderInfo()
'確認したいフォルダパスを指定
Dim sFolder As String
sFolder = "C:\VBA\FSO"
'FileSystemObjectの作成
Dim oFso As Object
Set oFso = CreateObject("Scripting.FileSystemObject")
'フォルダオブジェクトを取得
Dim oFolder As Object
Set oFolder = oFso.GetFolder(sFolder)
'プロパティからフォルダの種類、サイズ、属性を取得
Debug.Print "FileType - " & oFolder.Type
Debug.Print "FileSize - " & oFolder.Size & " Byte"
Debug.Print "Attributes - " & getAttrDescript(oFolder.Attributes)
End Sub
'******************************************************************
' 属性値の説明を取得
'------------------------------------------------------------------
' 第1引数:属性値
'------------------------------------------------------------------
' 戻り値 :属性値の説明
'******************************************************************
Function getAttrDescript(GetAttr As Integer) As String
Select Case GetAttr
Case 0
getAttrDescript = "Normal : 標準のファイル。"
Case 1
getAttrDescript = "ReadOnly : 読み取り専用ファイル。(読み取り/書き込み可能)"
Case 2
getAttrDescript = "Hidden : 隠しファイル。 (読み取り/書き込み可能)"
Case 4
getAttrDescript = "System : システム ファイル。 (読み取り/書き込み可能)"
Case 8
getAttrDescript = "Volume : ディスク ドライブのボリューム ラベル。(読み取り専用)"
Case 16
getAttrDescript = "Directory : フォルダーまたはディレクトリ。 (読み取り専用)"
Case 32
getAttrDescript = "Archive : アーカイブファイル。 (読み取り/書き込み可能)"
Case 1024
getAttrDescript = "Alias : リンクまたはショートカット。 (読み取り専用)"
Case 2048
getAttrDescript = "Compressed : 圧縮ファイル。 (読み取り専用)"
End Select
End Function■実行結果



