Сохранение нового файла с одним предшествующим алфавитом - PullRequest
0 голосов
/ 04 мая 2011

Пожалуйста, найдите код:

Проблема в том, что папка имеет большой номер. файлов

=====================================================================================
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))

1 Ответ

0 голосов
/ 06 мая 2011

Не используйте FSO, но используйте WMI, где вы указали имя файла в операторе SELECT, например: "DE_For_Pol_Print_APPA_7A_Copy_%".Это должно вернуть коллекцию только с файлами с запрошенным именем файла (быстрее, чем общая коллекция).

Нет свойства count для коллекций файлов, но вы можете использовать:

For Each file in fileCollection
    counter = counter + 1
Next

Thisне получит доступ к внутреннему объекту файла и должен работать достаточно быстро.

Второй и даже более быстрый (но более уродливый) способ - это использовать командную строку из объекта windowshell и вернуть dir на выход.Вывод - это просто строка.Теперь посчитайте количество совпадений на нужную вам строку (DE_For_Pol_Print_APPA_7A_Copy_), и это ваш счетчик.

Точный код оставлен пустым в качестве упражнения для плаката.

...