ファイルの属性を取得する方法

◆概要

このページは、Visual Basic 6.0でファイルの属性を取得する方法について記載しています。


ファイルの属性を取得するには、ファイルシステムオブジェクトに含まれるFileオブジェクトのAttributes プロパティを利用します。

◆Sample code

フォームにDriveListBox(オブジェクト名Drive1)、DirListBox(オブジェクト名Dir1)、FileListBox(オブジェクト名File1)を追加し、コントロール配列としたCheckBox(オブジェクト名Check1)を5つ配置します。

フォームの設計

次に下記のコードをコピーしてください。

Option Explicit

Private Sub UncheckCheckBox()

    Dim intCounter As Integer

    ' すべてのチェックボックスを未チェック状態に設定
    For intCounter = 0 To 4
        Check1(intCounter).Value = vbUnchecked
    Next

End Sub

Private Sub Dir1_Change()
    File1.Path = Dir1.Path
End Sub

Private Sub Drive1_Change()
    Dir1.Path = Drive1.Drive
End Sub

Private Sub File1_Click()
    Dim objFileSystem As Object
    Dim objFile       As Object
    Dim strFileName   As String
    
    ' すべてのチェックボックスを未チェック状態に設定
    Call UncheckCheckBox

    ' 属性を取得するファイル名
    strFileName = File1.Path & "\" & File1.FileName

    ' ファイルシステムオブジェクトへの参照
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFileSystem.GetFile(strFileName)

    ' 読み取り専用ファイル
    If objFile.Attributes And vbReadOnly Then
        Check1(0).Value = vbChecked
    End If

    ' 隠しファイル
    If objFile.Attributes And vbHidden Then
        Check1(1).Value = vbChecked
    End If

    ' システム
    If objFile.Attributes And vbSystem Then
        Check1(2).Value = vbChecked
    End If

    ' アーカイブ
    If objFile.Attributes And vbArchive Then
        Check1(3).Value = vbChecked
    End If

    ' 圧縮
    If objFile.Attributes And &H800 Then
        Check1(4).Value = vbChecked
    End If

    ' オブジェクトを解放
    Set objFileSystem = Nothing
    Set objFile = Nothing


End Sub

Private Sub File1_PathChange()
    If File1.ListCount <> 0 Then
        File1.ListIndex = 0
    End If
End Sub

Private Sub Form_Load()
    With File1
        ' アーカイブ属性のファイルを表示する
        .Archive = True
        ' 隠し属性のファイルを表示する
        .Hidden = True
        ' 通常属性のファイルを表示する
        .Normal = True
        ' システム属性のファイルを表示する
        .System = True
    End With
    
    'チェックボックスのラベルを設定
    Check1(0).Caption = "読み取り専用"
    Check1(1).Caption = "隠しファイル"
    Check1(2).Caption = "システム"
    Check1(3).Caption = "アーカイブ"
    Check1(4).Caption = "圧縮"
End Sub
  


◆実行結果

実行結果

▼ページトップへ