请找到代码:
问题是文件夹有大号没有。文件
===================================================================================== Dim fso, objFolder, obFileList, folderpath,counter folderpath = "G:\Everyone\Model Office Testing Documents\HP QC\QTP\PSISAutomation\Logs" Set fso = CreateObject("Scripting.FileSystemObject") Set objFolder = fso.GetFolder(folderpath) Set objFileList = objFolder.Files For Each File In objFileList msgbox("5") If InStr(1,File.Name,"DE_For_Pol_Print_APPA_7A_Copy_") = 1 Then counter=counter+1 End If Next counter=counter+1 msgbox("new file will be saved as: " &"DE_For_Pol_Print_APPA_7A_Copy_"& Chr(64 + Counter))
答案 0 :(得分:0)
不要使用FSO,而是使用将文件名放在SELECT语句中的WMI,例如:"DE_For_Pol_Print_APPA_7A_Copy_%"
。这应该返回一个只包含所请求文件名的文件的集合(比总集合快)。
文件集合没有count属性,但您可以使用:
For Each file in fileCollection
counter = counter + 1
Next
这将不会访问内部文件对象,并且应该合理地运行。
第二种甚至更快(但更丑陋的imo)技术是使用来自windowshell对象的命令提示符并将dir返回到输出。输出只是一个字符串。现在,计算所需字符串的匹配数量(DE_For_Pol_Print_APPA_7A_Copy_),这是您的计数器。
确切的代码留空作为海报的练习。