设置文件系统文件夹对象引用时,VBS脚本“找不到路径”错误

时间:2011-08-30 11:34:10

标签: vbscript path

我正在编写一个脚本来确定登录到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"

此代码在第15行引发“未找到路径”错误(代码800A004C):

Set objSubfolder = objFSO2.GetFolder(strSubfolderPath)

但是,如果我打印出strSubfolderPath,我发现返回的所有字符串都是有效的目录路径,所以我不明白为什么会出现这个错误。

我尝试过在路径末尾使用和不使用尾部反斜杠,我尝试使用8.3样式路径删除空格但没有效果。

2 个答案:

答案 0 :(得分:1)

当我运行你的代码时,我得到了同样的错误。

进一步检查后,在我的计算机上有一个名为C:\Documents and Settings\machinename的文件夹,其中 machinename 是我的计算机的名称。此文件夹仅包含一个名为ASPNet的子文件夹。

我猜你有类似的东西。

答案 1 :(得分:1)

为了最大限度地减少多反斜杠混淆,请始终使用FileSystemObject方法,而不是依赖字符串连接:

strSubfolderPath = objFSO1.BuildPath(objUserFolder.Path,"Desktop")