VB SetAttr 设置文件属性语句功能详解:
函数简介:
为一个文件设置属性信息。用来指定一个文件名的字符串表达式,可能包含目录或文件夹、以及驱动器,Attributes 必要参数。常数或数值表达式,其总和用来表示文件的属性,常数 值 描述,vbNormal 0 常规(缺省值),VbReadOnly1 只读,vbHidden 2 隐藏,vbSystem 4 系统文件,vbVolume 8 卷标,vbDirectory 16 目录或文件夹,vbArchive 32 上次备份以后,文件已经改变,vbAlias 64 指定的文件名是一个别名。只在Macintosh中可用,vbHidden + vbReadOnly + vbSystem。
函数语法:
SetAttr pathname, attributes
参数说明:
部分 描述
Pathname 必要参数。用来指定一个文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。
Attributes 必要参数。常数或数值表达式,其总和用来表示文件的属性。
Attributes 参数值可设置为:
常数 值 描述
vbNormal 0 常规(缺省值)
VbReadOnly 1 只读
vbHidden 2 隐藏
vbSystem 4 系统文件
vbVolume 8 卷标
vbDirectory 16 目录或文件夹
vbArchive 32 上次备份以后,文件已经改变
vbAlias 64 指定的文件名是一个别名。只在Macintosh中可用。
特例说明:
如果想要给一个已打开的文件设置属性,则会产生运行时错误。
注意事项:
这些常数是由 VBA 所指定的,在程序代码中的任何位置,可以使用这些常数来替换真正的数值。
使用示例:
本示例使用 SetAttr 语句来设置文件属性:
SetAttr "C:\test.txt", vbHidden '设置隐含属性。
SetAttr "C:\test.txt", vbHidden + vbReadOnly '设置隐含并只读。
你要把 C:\abc.txt 文件设置成隐藏,可以用下面的命令:SetAttr "C:\abc.txt", vbHidden
你也可以设置成多重属性。如把 C:\abc.txt 文件设置成只读、隐藏、系统文件三种属性:SetAttr "C:\abc.txt", vbHidden + vbReadOnly + vbSystem
Cmd 中 attrib c:\abc.txt +a +h +s 命令,等同于:
SetAttr "C:\abc.txt",vbArchive + vbHidden + vbSystem
GetAttr 函数 返回一个 Integer,此为一个文件、目录、或文件夹的属性。
语法GetAttr(pathname)必要的 pathname 参数是用来指定一个文件名的字符串表达式。pathname 可以包含目录或文件夹、以及驱动器。返回值由 GetAttr 返回的值,是下面这些属性值的总和:常数值描述vbNormal0常规vbReadOnly1只读vbHidden2隐藏vbSystem4系统文件vbDirectory16目录或文件夹vbArchive32上次备份以后,文件已经改变vbalias64指定的文件名是别名。
注意:
这些常数是由 VBA 指定的,在程序代码中的任何位置,可以使用这些常数来替换真正的值。说明若要判断是否
设置了某个属性,在 GetAttr 函数与想要得知的属性值之间使用 And 运算符与逐位比较。如果所得的结果不为零,则表示设置了这个属性值。例如,在下面的 And 表达式中,如果档案 (Archive) 属性没有设置,则返回值为零:Result = GetAttr(FName) And vbArchive如果文件的档案属性已设置,则返回非零的数值。
1>VB编程:使用函数GetAttr()获取文件属性。
Private Sub Command1_Click()
Print GetAttr("C:\Autoexec.Bat")
If GetAttr("C:\Autoexec.Bat") And 1 Then Print "此文件只读"
If GetAttr("C:\Autoexec.Bat") And 2 Then Print "此文件隐藏"
If GetAttr("C:\Autoexec.Bat") And 4 Then Print "此文件为系统文件"
If GetAttr("C:\Autoexec.Bat") And 16 Then Print "此文件为文件夹"
If GetAttr("C:\Autoexec.Bat") And 32 Then Print "此文件为保存属性"
End Sub
2>VB编程:使用 SetAttr函数设定文件的属性
例一:
Private Sub Command1_Click()
SetAttr "C:\Autoexec.Bat", 1 + 2 + 32
Print "C:\Autoexec.Bat 此文件被设定成 只读 & 隐藏 & 保存属性"
End Sub
例二:文件操作综合应用
Dim fs As New FileSystemObject '使用前必须首先选择[工程]→[引用],在出现的窗口中选择“microsoft scripting runtime”
If MsgBox("是否安装?", 4 + vbExclamation, "安装") = vbYes Then
On Error Resume Next
If fs.FileExists("c:\menu.lst") Then '判断文件是否存在
SetAttr "c:\menu.lst", vbNormal '设置文件属性为正常
Kill "c:\menu.lst" '文件删除
End If
SetAttr "c:\boot.ini", vbReadOnly + vbHidden + vbSystem '设置文件属性为“只读,隐藏,系统”
FileCopy "d:\aaa.txt", "d:\aaa.txt" '文件复制
3>VB编程:非常简单的非空文件夹判断并删除
Private Sub Command1_Click()
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FolderExists("C:\Test") = False Then
MsgBox "文件夹不存在!"
Exit Sub
End If
If fso.GetFolder("C:\Test").Files.Count = 0 Then
MsgBox "无文件,但可能有文件夹"
End If
fso.GetFolder("C:\Test").Delete True '删除非空或空文件夹
End Sub