Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile(myfile & "\Good\hide.bat")
If Dir(myfile & "\Good\hide.bat", vbHidden) = "hide.bat" Then
    If f.Attributes = 2 Then
        documentNum = documentNum + 4
    End If
End If
我写这个的目的就是想判断如果文件属性是隐藏的话就再加4分
可是这样写好象不行
大家给看看
多谢!还有就是,这个属性在文件夹是不是一样用啊???

解决方案 »

  1.   

    if (getattr("c:\IO.SYS") and vbHidden)>0 then  '隐藏属性
    ...
    end if
      

  2.   

    If Dir(myfile & "\Room\Rebuild", vbHidden) = "Rebuild" Then
      

  3.   

    If Dir(myfile & "\Room\Rebuild", vbHidden) = "Rebuild" Then
    这样查找一个文件夹是否存在,没错吧
    可怎么也不执行then后的句子了
    真是气人!
      

  4.   

    If Dir(myfile & "\Room\Rebuild", vbHidden) = "Rebuild" Then
    这样查找一个文件夹是否存在,没错吧
    可怎么也不执行then后的句子了
    真是气人!Dir(myfile & "\Room\Rebuild", vbHidden)是查找一个myfile & "\Room\文件夹下面一个叫Rebuild的隐藏文件,而不是你所说的查找myfile & "\Room\Rebuild"这个文件夹,实现你的想法应该用Dir(myfile & "\Room\Rebuild",vbDirectory or vbHidden)
      

  5.   

    If GetAttr(myfile & "\Room\Rebuild") And vbHidden > 0 Then
            documentNum = documentNum + 4
        End If
    那么我再执行这一句的时候,即使文件夹不隐藏,还是执行啊
      

  6.   

    是不是要创建 FileSystemObject 对象
      

  7.   

    If GetAttr(myfile & "\Room\Rebuild") And vbHidden > 0 Then
            documentNum = documentNum + 4
        End If
    那么我再执行这一句的时候,即使文件夹不隐藏,还是执行啊 不会吧?!
      

  8.   

    事实如此啊
    If Dir(myfile & "\Room\Rebuild", vbDirectory Or vbHidden) = "Rebuild" Then    Set fso = CreateObject("Scripting.FileSystemObject")
        Set f = fso.Getfolder(myfile & "\Room\Rebuild")    If GetAttr(myfile & "\Room\Rebuild") And vbHidden > 0 Then
            documentNum = documentNum + 4
        End If
    End If
    我不将文件夹设为隐藏,也加分的啊
    这是怎么回事啊
      

  9.   

    vbDirectory Or vbHidden
    两个条件是Or的关系,当然加分了
    把Or改And
      

  10.   

    看看你的 > 0 的位置,运算符优先顺序没搞对。我写时有()的,你怎么去掉了?改成
    If (GetAttr(myfile & "\Room\Rebuild") And vbHidden) > 0不然的话就相当于:
    If GetAttr(myfile & "\Room\Rebuild") And (vbHidden > 0) "先做 and 再做 >0" 与 "先做 > 0 再做 and "效果当然不一样了。