Ошибка сценария VBS «Путь не найден» при установке ссылки на объект папки файловой системы - PullRequest
2 голосов
/ 30 августа 2011

Я пишу сценарий для определения объединенного размера всех экземпляров определенной подпапки в папке профиля каждого пользователя, который вошел на сервер 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 удалить пробелы, но безрезультатно.

Ответы [ 2 ]

1 голос
/ 30 августа 2011

Чтобы свести к минимуму путаницу с несколькими обратными слешами, последовательно используйте методы FileSystemObject вместо того, чтобы полагаться на конкатенацию строк:

strSubfolderPath = objFSO1.BuildPath(objUserFolder.Path,"Desktop")
1 голос
/ 30 августа 2011

Когда я запускаю ваш код, я получаю ту же ошибку.

При дальнейшей проверке на моем компьютере есть папка с именем C:\Documents and Settings\machinename, где имя_машины - имя моего компьютера,Эта папка содержит только одну подпапку с именем ASPNet.

Полагаю, у вас есть что-то похожее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...