SetAttr Statement |
Yes
SetAttr pathname, attributes
pathname
Use: Required
Data Type: String
The name of the file whose attributes are to be set.
attributes
Use: Required
Data Type: Integer
Numeric expression or constant specifying the attributes.
Changes the attribute properties of a file.
Visual Basic now includes the following intrinsic constants for setting file attributes:
Constant | Value | Description |
---|---|---|
vbNormal | 0 | Normal (default) |
vbReadOnly | 1 | Read-only |
vbHidden | 2 | Hidden |
vbSystem | 4 | System file |
vbArchive | 32 | File has changed since last backup |
File attributes' constants can be added together or logically ORed to set more than one attribute at the same time. For example:
SetAttr "SysFile.Dat", vbSystem Or vbHidden SetAttr "MyFile.Txt", vbArchive + vbReadOnly
pathname can include a drive letter. If a drive letter isn't included in pathname, the current drive is assumed. If a drive letter is used, the fully qualified path is required unless the file is located in the current directory.
pathname can include a folder name. If the folder name isn't included in pathname, the current folder is assumed.
Attempting to set the attributes of an open file will generate a runtime error.
Private Sub AddAttributes(strFN As String, _ intNewAttrib As Integer) Dim intAttrib As Integer intAttrib = GetAttr(strFN) SetAttr strFN, intAttrib Or intNewAttrib End Sub
Setting file attributes simultaneously clears any attributes that aren't set with the SetAttr statement. For example, if SysFile.Dat is a read-only, hidden system file, the statement:
SetAttr "sysfile.dat", vbArchive
sets the archive attribute but clears the read-only, hidden, and system attributes. Clearly, this can have disastrous implications. To retain a file's attributes while setting new ones, first retrieve its attributes using the GetAttr function, as the previous example illustrates.
Setting a file's attributes to vbNormal clears all file attributes.