excel Dir()函数理解

b0zn9rqh  于 2023-03-20  发布在  其他
关注(0)|答案(3)|浏览(345)
' Display the names in C:\ that represent directories.
MyPath = "c:\"   ' Set the path.
MyName = Dir(MyPath, vbDirectory)   ' Retrieve the first entry.
Do While MyName <> ""   ' Start the loop.
      ' Use bitwise comparison to make sure MyName is a directory. 
      If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then 
         ' Display entry only if it's a directory.
         MsgBox(MyName)
      End If   
   MyName = Dir()   ' Get next entry.
Loop

我正在查看上面的代码。我特别不明白“MyName = Dir()”是做什么的。它被注解为获取下一个条目,但我不明白它是如何获取下一个条目的--特别是Dir()在做什么?

91zkwejq

91zkwejq1#

引用docs
Dir返回与pathname匹配的第一个文件名。若要获取与pathname匹配的任何其他文件名,请再次调用Dir而不使用参数。当没有更多文件名匹配时,Dir将返回零长度字符串(“”)。返回零长度字符串后,必须在后续调用中指定pathname,否则将出错。
所以Dir是一个有边缘效应的函数。
Dir的第一次调用:MyName = Dir(MyPath, vbDirectory)初始化Dir内部结构并返回第一个目录条目。
Dir的后续调用使用相同的上下文,逐个生成MyPath目录内容。
它不是可重入的(这也是为什么你不能使用Dir嵌套/递归多个循环),不是很优雅,但这就是它的工作原理。

mzillmmw

mzillmmw2#

根据Dir() MSDN,它
返回一个字符串,该字符串表示与指定模式或文件属性匹配的文件、目录或文件夹的名称,或者表示驱动器的卷标。

az31mfrm

az31mfrm3#

在python中,Dir()函数返回一个模块中存在的所有包/模块的列表,就像这样!!enter image description here

相关问题