VBA Dir 获取文件夹下的文件
获取当前文件夹下的文件与子文件夹。
注:无法查看当前文件夹中的孙子文件与文件夹。
默认情况下只能获取到第1个文件,如果需要获取到其它文件,则需调用多次Dir。
如果需要查看子文件夹,需要设置相应选项。
语法
Dir [ (pathname, [ attributes ] ) ]
查看指定文件夹pathname下的文件与子文件夹。
attributes 可选项。表示查看选项,默认只查看文件,可设置为vbDirectory,则可以查看到子文件夹。
示例
例1:获取C:\的前2个文件名。
Sub sub1()
Dim fileName As String
fileName = Dir("c:\") '获取c:\下的第1个文件
Debug.Print fileName
fileName = Dir '再次调用Dir,不带参数,表示获取第2个文件
Debug.Print fileName
End Sub
输出内容:
config.ini
readme.txt
例2:获取C:\的所有文件。不包括下级文件夹。
根据例1中的思路,需要不断循环Dir,一直到读取不到文件,此时Dir会返回空字符串""。
Sub sub2()
Dim fileName As String
fileName = Dir("c:\")
'如果Dir返回空字符串,表示读取结束
Do While fileName <> ""
Debug.Print fileName
fileName = Dir
Loop
End Sub
输出结果:
config.ini
readme.txt
ServiceOutFile.txt
test1.exe
test1.xlsx
例3:获取c:\的所有文件与文件夹。不包括下级文件夹。
Sub sub3()
Dim fileName As String
'选项vbDirectory表示可以获取文件与子文件夹
fileName = Dir("c:\", vbDirectory)
Do While fileName <> ""
Debug.Print fileName
fileName = Dir
Loop
End Sub
输出结果:
AppData
config.ini
ESD
LenovoDrivers
PerfLogs
Program Files
Program Files (x86)
readme.txt
ServiceOutFile.txt
test1.exe
test1.xlsx
Users
Windows