ファイルの種類、サイズ、属性を取得

指定したファイルの種類、サイズ、属性を取得する。

FileSystemObjectのGetFileメソッドを利用して指定のファイルの種類、サイズ、属性を取得することができます。

GetFileには下記の引数が設定できます。

引数名説明省略
第1引数filespec確認対象のファイルのパスを指定不可

ファイルの種類、サイズ、属性の情報はGetFileメソッドで取得したオブジェクトのプロパティから取得できます。
第1引数で指定したパスに実在しないファイルを指定した場合はエラーとなります。

'******************************************************************
' ファイルの種類、サイズ、属性を取得
'******************************************************************
Sub Main_GetFileInfo()
    
    '確認したいファイルパスを指定
    Dim sFile As String
    sFile = "C:\VBA\FSO\vba-sample.xlx"
    
    'FileSystemObjectの作成
    Dim oFso As Object
    Set oFso = CreateObject("Scripting.FileSystemObject")
    
    'ファイルオブジェクトを取得
    Dim oFile As Object
    Set oFile = oFso.GetFile(sFile)
    
    'プロパティからファイルの種類、サイズ、属性を取得
    Debug.Print "FileType   - " & oFile.Type
    Debug.Print "FileSize   - " & oFile.Size & " Byte"
    Debug.Print "Attributes - " & getAttrDescript(oFile.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

 ■実行結果