GetFileAttributes VB声明 Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long 说明 判断指定文件的属性 返回值 Long,-1表示出错。如返回包含了标志的一个Long值,则指定文件的属性。其中的标志对应于带有FILE_ATTRIBUTE_???前缀的常数。具体参考BY_HANDLE_FILE_INFORMATION结构的File Attribute Types table表格 参数表 参数 类型及说明 lpFileName String,指定欲获取属性的一个文件的名 FILE_ATTRIBUTE_ARCHIVE Archive file. FILE_ATTRIBUTE_COMPRESSED The file or directory is compressed. FILE_ATTRIBUTE_DIRECTORY File is a directory. FILE_ATTRIBUTE_HIDDEN File is hidden. FILE_ATTRIBUTE_NORMAL File is normal (no other file attributes are specified). FILE_ATTRIBUTE_READONLY File is read-only. FILE_ATTRIBUTE_SYSTEM File is a system file. FILE_ATTRIBUTE_NORMAL File is a temporary file.
用api函数的话是GetFileAttributes: Public Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
GetAttr 函数
返回一个 Integer,此为一个文件、目录、或文件夹的属性。语法GetAttr(pathname)必要的 pathname 参数是用来指定一个文件名的字符串表达式。pathname 可以包含目录或文件夹、以及驱动器。返回值由 GetAttr 返回的值,是下面这些属性值的总和:常数 值 描述
vbNormal 0 常规
vbReadOnly 1 只读
vbHidden 2 隐藏
vbSystem 4 系统文件
vbDirectory 16 目录或文件夹
vbArchive 32 上次备份以后,文件已经改变
vbalias 64 指定的文件名是别名。
注意 这些常数是由 VBA 指定的,在程序代码中的任何位置,可以使用这些常数来替换真正的值。说明若要判断是否设置了某个属性,在 GetAttr 函数与想要得知的属性值之间使用 And 运算符与逐位比较。如果所得的结果不为零,则表示设置了这个属性值。例如,在下面的 And 表达式中,如果档案 (Archive) 属性没有设置,则返回值为零:Result = GetAttr(FName) And vbArchive如果文件的档案属性已设置,则返回非零的数值。GetAttr 函数示例
本示例使用 GetAttr 函数来得知文件及目录或文件夹的属性。 Dim MyAttr
' 假设 TESTFILE 具有隐含属性。
MyAttr = GetAttr("TESTFILE") ' 返回 2。' 如果 TESTFILE 有隐含属性,则返回非零值。
Debug.Print MyAttr And vbHidden ' 假设 TESTFILE 具有隐含的只读属性。
MyAttr = GetAttr("TESTFILE") ' 返回 3 。' 如果 TESTFILE 含有隐含属性,则返回非零值。
Debug.Print MyAttr And (vbHidden + vbReadOnly) ' 假设 MYDIR 代表一目录或文件夹。
MyAttr = GetAttr("MYDIR") ' 返回 16。
Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
说明
判断指定文件的属性
返回值
Long,-1表示出错。如返回包含了标志的一个Long值,则指定文件的属性。其中的标志对应于带有FILE_ATTRIBUTE_???前缀的常数。具体参考BY_HANDLE_FILE_INFORMATION结构的File Attribute Types table表格
参数表
参数 类型及说明
lpFileName String,指定欲获取属性的一个文件的名
FILE_ATTRIBUTE_ARCHIVE Archive file.
FILE_ATTRIBUTE_COMPRESSED The file or directory is compressed.
FILE_ATTRIBUTE_DIRECTORY File is a directory.
FILE_ATTRIBUTE_HIDDEN File is hidden.
FILE_ATTRIBUTE_NORMAL File is normal (no other file attributes are specified).
FILE_ATTRIBUTE_READONLY File is read-only.
FILE_ATTRIBUTE_SYSTEM File is a system file.
FILE_ATTRIBUTE_NORMAL File is a temporary file.
Public Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long