以下 VBScript 代码 - 在这种情况下 - 如果文件夹名称包含空格字符,则返回 False 并出错。我在网上搜索了解决方案,但没有一个对我有用。我发现了以下内容:
用“~”字符替换空格字符。
将路径值放在引号中。 (这个版本可以在下面的代码中看到。)
使用单引号 (') 而不是双引号。
我被困在这里了。从文件夹名称中删除空格字符不是解决方案。因为下面的代码只是示例代码。原来是在一个安装脚本里,需要在Windows用户目录下运行,“C:\users”目录下用户名可以有空格。
解决方案是什么?
示例代码:
Option Explicit
Dim oFSO: Set oFSO = CreateObject ("Scripting.FileSystemObject")
Dim sFolder: sFolder = "C:\Alfa test"
If InStr (sFolder, " ") > 0 Then
sFolder = Chr (34) & sFolder & Chr (34)
End If
If oFSO.FolderExists (sFolder) = False Then
MsgBox "Folder does not exists"
WScript.Quit()
End If
Msgbox "Folder exists"
评论中解释的问题是FSO需要尾随反斜杠来标识与目录相关的路径,这在使用
MoveFile()
方法时也是如此。
要解决问题,请替换此行
Dim sFolder: sFolder = "C:\Alfa test"
与
Dim sFolder: sFolder = "C:\Alfa test\"