Retrieving the File Attributes

This tip demonstrates how to use the GetFileAttributes API function to retrieve the attributes of a file. The attributes include whether the file is read-only or marked as a system or hidden file.

Module Code

Add the following code to a module:

Declare Function GetFileAttributes Lib "kernel32" _
Alias "GetFileAttributesA" _
(ByVal lpFileName As String) As Long

Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
Public Const FILE_ATTRIBUTE_HIDDEN = &H2
Public Const FILE_ATTRIBUTE_READONLY = &H1
Public Const FILE_ATTRIBUTE_SYSTEM = &H4

Form Code

Add a command button to a form with the following code:

Private Sub Command1_Click()

Dim FileName As String, Attributes As Long

'Use the filename you want
FileName = "C:\MSDOS.SYS"

'Get the attributes with the GetFileAttributes API
Attributes& = GetFileAttributes(FileName)

'Check the returned value for the different
'attributes using the AND-Operator.

Print "FileName: " & FileName & ", Attributes: " & Attributes&
Print
Print "hidden:" & vbTab & vbTab & _
CBool(Attributes& And FILE_ATTRIBUTE_HIDDEN)
Print "system:" & vbTab & vbTab & _
CBool(Attributes& And FILE_ATTRIBUTE_SYSTEM)
Print "archive:" & vbTab & vbTab & _
CBool(Attributes& And FILE_ATTRIBUTE_ARCHIVE)
Print "readonly:" & vbTab & _
CBool(Attributes& And FILE_ATTRIBUTE_READONLY)
End Sub
Blinds | Shades | Vertical Blind | Blind Wooden | Wedding Announcements