小问题,关于文件属性操作。大家帮忙给看一下啊!?在线结帖!

吾非大神 2006-08-25 12:29:27
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分
可是这样写好象不行
大家给看看
多谢!还有就是,这个属性在文件夹是不是一样用啊???
...全文
211 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fxy_2002 2006-08-25
  • 打赏
  • 举报
回复
if (getattr("c:\IO.SYS") and vbHidden)>0 then '隐藏属性
...
end if
吾非大神 2006-08-25
  • 打赏
  • 举报
回复
哈哈
谢谢阿勇大哥,才发现!
太不认真了我!
fxy_2002 2006-08-25
  • 打赏
  • 举报
回复
看看你的 > 0 的位置,运算符优先顺序没搞对。我写时有()的,你怎么去掉了?

改成
If (GetAttr(myfile & "\Room\Rebuild") And vbHidden) > 0

不然的话就相当于:
If GetAttr(myfile & "\Room\Rebuild") And (vbHidden > 0)

"先做 and 再做 >0" 与 "先做 > 0 再做 and "效果当然不一样了。
VirtualDesktop 2006-08-25
  • 打赏
  • 举报
回复
vbDirectory Or vbHidden
两个条件是Or的关系,当然加分了
把Or改And
吾非大神 2006-08-25
  • 打赏
  • 举报
回复
事实如此啊
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
我不将文件夹设为隐藏,也加分的啊
这是怎么回事啊
happy_sea 2006-08-25
  • 打赏
  • 举报
回复
If GetAttr(myfile & "\Room\Rebuild") And vbHidden > 0 Then
documentNum = documentNum + 4
End If
那么我再执行这一句的时候,即使文件夹不隐藏,还是执行啊

不会吧?!
吾非大神 2006-08-25
  • 打赏
  • 举报
回复
是不是要创建 FileSystemObject 对象
吾非大神 2006-08-25
  • 打赏
  • 举报
回复
If GetAttr(myfile & "\Room\Rebuild") And vbHidden > 0 Then
documentNum = documentNum + 4
End If
那么我再执行这一句的时候,即使文件夹不隐藏,还是执行啊
happy_sea 2006-08-25
  • 打赏
  • 举报
回复
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)
吾非大神 2006-08-25
  • 打赏
  • 举报
回复
If Dir(myfile & "\Room\Rebuild", vbHidden) = "Rebuild" Then
这样查找一个文件夹是否存在,没错吧
可怎么也不执行then后的句子了
真是气人!
吾非大神 2006-08-25
  • 打赏
  • 举报
回复
If Dir(myfile & "\Room\Rebuild", vbHidden) = "Rebuild" Then

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧