excel/vba使用DIR函数,参数选vbReadOnly,查找结果不正确。

以下代码希望找D盘下的只读文件,结果却是所有文件,无论是否设置了只读,都找到了。为什么?
Sub test()
Dim myDoc As String, myPath As String
myPath = "D:\"
myDoc = Dir(myPath, vbReadOnly)
Debug.Print myDoc
Do While Len(myDoc) > 0
myDoc = Dir
Debug.Print myDoc
Loop
End Sub

另外,文件夹和目录有什么区别?
我想知道,这里设置参数为vbReadOnly,但是把非只读文件也找到了,是不是有bug?还是我不会用,用错了?理解错了?

第1个回答  2014-04-06
attributes常量能够组合在一起产生相应的组合属性进行匹配,例如vbHidden+vbDirectory组合表示隐藏目录。对象浏览器和VBA列表中还给出了其他几个常量(如vbReadOnly、vbArchive),它们能作为attributes参数的值,但却不能在Windows平台上使用,也不能影响函数的操作。
文件夹就是目录追问

你的意思是vba给出了dir函数的参数,但参数不能用?

追答

试试使用Filesystem.dir方法吧
你读出后,还需要把读出的文件属性and vbReadOnly,得到非零才能确定

因为NTFS无法保证文件系统中ReadOnly属性的可靠性(你可以看一下文件夹属性,不管你是否设置只读,它都是打上勾的,无法更改)

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网