recursion访问文件夹内的子文件夹文件
我已经写了这个代码来访问文件夹中的Excel文件:
strPath="C:\Test\" Set objFso = CreateObject("Scripting.FileSystemObject") Set objFolder = objFso.GetFolder (strPath) Set objExcel= CreateObject("Excel.Application") objExcel.Visible= False For Each objFile In objFolder.Files If objFso.GetExtensionName(objFile.Path) = "xls" Then
现在我必须创build一些子文件夹,并在其中放置一些.xls文件。
在我的主要文件夹和所有其他子文件夹中search文件的代码中应该做些什么修改(子文件夹内还有一些文件夹)?
这实际上是一个很好解决的问题。 recursion意味着你创build了一个自引用函数(一个自我调用的函数)。 在你的情况下,你会为当前文件夹的每个子文件夹调用自己的函数。
TraverseFolders objFso.GetFolder(strPath) Function TraverseFolders(fldr) ' do stuff with the files in fldr here, or ... For Each sf In fldr.SubFolders TraverseFolders sf '<- recurse here Next ' ... do stuff with the files in fldr here. End Function
在脚本开始处运行它,它将列出所有文件夹中的所有文件:
dir /S/B > AllFoldersAndFiles.txt
然后遍历文件列表。 这对我有用。
recursionvb有点棘手。