问题描述
我有一个简单的循环,它遍历目录中的所有文件夹,如果某个条件为真,它会创建一个具有新文件夹名称的文件夹副本。
我的问题是,在创建新文件夹后,它会在稍后的循环中进行处理,而我不希望那样。
循环正在检查文件夹名称,如果长度为 7、6 或 5 个字符,则执行某个操作。一个 7 位长度的文件夹被重命名为一个 6 位文件夹,但稍后在循环中新的 6 位文件夹被包含并进一步处理。我不要这个。
谢谢
解决方法
我最终使用 Dictionary 对象来保存原始文件夹列表,然后在继续之前检查该列表中是否存在循环文件夹。
Set FSO = CreateObject("Scripting.FileSystemObject")
Set startingSubFoldColl = CreateObject("Scripting.Dicitonary")
Set Folder = FSO.GetFolder(*targetFolderPath*)
For Each Subfolder in Folder.Subfolders
startingSubFoldColl.add Cstr(Subfolder),Cstr(Subfolder)
Next
For Each SubFolder in Folder.Subfolders
If startingSubFoldColl.Exists(Cstr(Subfolder)) Then
'Do Stuff
End If
Next