Я пишу сценарий для определения объединенного размера всех экземпляров определенной подпапки в папке профиля каждого пользователя, который вошел на сервер Windows 2003, например, папки всех пользователей на рабочем столе или папки локальных настроек всех пользователей.
Option Explicit
Dim colSubfolders, intCount, intCombinedSize, objFolder2, objFSO1, objFSO2, objUserFolder, strOutput, objSearchFolder, objSubfolder, strSearchFolder, strSubfolderPath
intCount = 0
intCombinedSize = 0
strSearchFolder = "C:\Documents and Settings\"
Set objFSO1 = CreateObject("Scripting.FileSystemObject")
Set objSearchFolder = objFSO1.GetFolder(strSearchFolder)
Set colSubfolders = objSearchFolder.SubFolders
For Each objUserFolder in colSubfolders
strSubfolderPath = objUserFolder.Path & "\Desktop\"
Set objFSO2 = CreateObject("Scripting.FileSystemObject")
Set objSubfolder = objFSO2.GetFolder(strSubfolderPath)
intCount = intCount + 1
intCombinedSize = intCombinedSize + objSubfolder.Size
Next
MsgBox "Combined size of " & CStr(intCount) & " folders: " & CStr(intCombinedSize / 1048576) & " MB"
Этот код выдает ошибку «Путь не найден» (код 800A004C) в строке 15:
Set objSubfolder = objFSO2.GetFolder(strSubfolderPath)
Однако, если я распечатываю strSubfolderPath, я нахожу, что все возвращаемые строки являются допустимыми путями к каталогам, поэтому я не понимаю, почему я получаю эту ошибку.
Я пробовал с и без обратной косой черты в конце пути, и я пытался с путями стиля 8.3 удалить пробелы, но безрезультатно.