以下代码希望找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属性的可靠性(你可以看一下文件夹属性,不管你是否设置只读,它都是打上勾的,无法更改)