源代码:
import Sys
import Regex
// dir:待获取文件的目录(支持通配符);match:字符串过滤(dir带通配符也可以搞定);hasChild:是否获取其子目录文件
Function getFiles(dir=@res"", match="", hasChild=False)
dim sRet
dim exe = "DIR /A/B "
If hasChild
exe = "DIR /S/B "
End If
If match = ""
sRet = Sys.Command(exe & dir )
Else
sRet = Sys.Command(exe & dir & " | findstr /I " & match)
End If
return Regex.FindAll(sRet,"^(.*?)$")
End Function
// 获取d:\\demo及其子目录下的所有文件
TracePrint(getFiles("d:\\demo","",True))
// 只获取d:\\demo及其下的png文件,不获取其子目录文件
TracePrint(getFiles("d:\\demo","png"))
// 获取d:\\demo及其子目录下的bmp文件
TracePrint(getFiles("d:\\demo","bmp",True))
// 只获取d:\\demo下的,文件路径包含zrr的png文件。
TracePrint(getFiles("d:\\demo\\*.png","zrr"))
// 也支持目录直接写通配符
TracePrint(getFiles("d:\\demo\\*.txt"))
// 多值条件过滤,只获取d:\\demo及其下的txt和png文件
TracePrint(getFiles("( d:\\demo\\*.txt d:\\demo\\*.png )"))
// 默认当前工程目录下
TracePrint(getFiles())
运行效果: