ファイルの属性を取得する方法
◆概要
このページは、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 |
◆実行結果