GetAttr
Returns an Integer representing the attributes of a file, directory, or folder.
Syntax: GetAttr( pathname )
- pathname
- required String expression that specifies a file name. The pathname may include the directory or folder, and the drive.
Return Values
The value returned by GetAttr is the sum of the following attribute values:
| Constant | Value | Description |
|---|---|---|
| vbNormal | 0 | Normal. |
| vbReadOnly | 1 | Read-only. |
| vbHidden | 2 | Hidden. |
| vbSystem | 4 | System file. |
| vbDirectory | 16 | Directory or folder. |
| vbArchive | 32 | File has changed since last backup. |
To determine which attributes are set, use the And operator to perform a bitwise comparison of the value returned by GetAttr and the value of the individual file attribute being tested. If the result is not zero, that attribute is set for the named file.
Dim FName As String, Result As Long
Result = GetAttr(FName) And vbArchive
A nonzero value is returned if the Archive attribute is set.
Common Errors
| Error | When |
|---|---|
-2147467259 (&H80004005), Unspecified error | no file or folder has the name pathname, or it is a zero-length string the folder or drive named in pathname does not exist pathname holds a wildcard pathname holds a character a name cannot hold, or names a file with a backslash at its end |
94 (&H5E), Invalid use of Null | pathname is Null |
Note BETA 1034
When no file or folder has the name pathname, or it is a zero-length string, VB6 and 64-bit VBA raise error 53 (&H35), File not found, instead.
Note BETA 1034
When the folder or drive named in pathname does not exist, VB6 and 64-bit VBA raise error 76 (&H4C), Path not found, instead.
Note BETA 1034
When pathname holds a wildcard, VB6 and 64-bit VBA raise error 52 (&H34), Bad file name or number, instead.
Note BETA 1034
When pathname holds a character a name cannot hold, or names a file with a backslash at its end, VB6 and 64-bit VBA raise error 5 (&H5), Invalid procedure call or argument, instead.
Example
This example uses the GetAttr function to determine the attributes of a file and directory or folder.
Dim MyAttr
' Assume file TESTFILE has hidden attribute set.
MyAttr = GetAttr("TESTFILE") ' Returns 2.
' Returns nonzero if hidden attribute is set on TESTFILE.
Debug.Print MyAttr And vbHidden
' Assume file TESTFILE has hidden and read-only attributes set.
MyAttr = GetAttr("TESTFILE") ' Returns 3.
' Returns nonzero if hidden attribute is set on TESTFILE.
Debug.Print MyAttr And (vbHidden + vbReadOnly)
' Assume MYDIR is a directory or folder.
MyAttr = GetAttr("MYDIR") ' Returns 16.
See Also
- Dir function