Sets or returns the attributes of files or folders. Read/write or read-only, depending on the attribute.
Syntax
object.Attributes [= newattributes]
Arguments
- object
Required. Always the name of a File or Folder object. - newattributes
Optional. If provided, newattributes is the new value for the attributes of the specified object.
Settings
The newattributes argument can have any of the following values or any logical combination of the following values:
Constant | Value | Description |
---|---|---|
Normal | 0 | Normal file. No attributes are set. |
ReadOnly | 1 | Read-only file. Attribute is read/write. |
Hidden | 2 | Hidden file. Attribute is read/write. |
System | 4 | System file. Attribute is read/write. |
Volume | 8 | Disk drive volume label. Attribute is read-only. |
Directory | 16 | Folder or directory. Attribute is read-only. |
Archive | 32 | File has changed since last backup. Attribute is read/write. |
Alias | 1024 | Link or shortcut. Attribute is read-only. |
Compressed | 2048 | Compressed file. Attribute is read-only. |
Remarks
The Attributes property is a bit mask, hence the use of 'And 2' to see if the hidden bit is set. Examples:
34 = 2 (Hidden) + 32 (Archive)
35 = 1 (ReadOnly) + 2 (Hidden) + 32 (Archive)
38 = 2 (Hidden) + 4 (System) + 32 (Archive)
18 = 2 (Hidden) + 16 (Directory)
19 = 1 (ReadOnly) + 2 (Hidden) + 16 (Directory)
Examples
The following code illustrates the use of the Attributes property with a file:
Sub SetClearArchiveBit(filespec)
Dim fs, f, r
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(filespec)
If f.Attributes And 32 Then
r = MsgBox("The Archive bit is set, do you want to clear it?", vbYesNo, "Set/Clear Archive Bit")
If r = vbYes Then
f.Attributes = f.Attributes - 32
MsgBox "Archive bit is cleared."
Else
MsgBox "Archive bit remains set."
End If
Else
r = MsgBox("The Archive bit is not set. Do you want to set it?", vbYesNo, "Set/Clear Archive Bit")
If r = vbYes Then
f.Attributes = f.Attributes + 32
MsgBox "Archive bit is set."
Else
MsgBox "Archive bit remains clear."
End If
End If
End Sub