用vb自带的函数getAttr,或者调用API

解决方案 »

  1.   


    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。
      

  2.   

    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.
      

  3.   

    用api函数的话是GetFileAttributes:
    Public Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long