VBScript:如果路径包含空格,FileSystemObject 的 FolderExists() 函数返回 False

问题描述 投票:0回答:1

以下 VBScript 代码 - 在这种情况下 - 如果文件夹名称包含空格字符,则返回 False 并出错。我在网上搜索了解决方案,但没有一个对我有用。我发现了以下内容:

  1. 用“~”字符替换空格字符。

  2. 将路径值放在引号中。 (这个版本可以在下面的代码中看到。)

  3. 使用单引号 (') 而不是双引号。

我被困在这里了。从文件夹名称中删除空格字符不是解决方案。因为下面的代码只是示例代码。原来是在一个安装脚本里,需要在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" 
vbscript filesystemobject
1个回答
0
投票

评论中解释的问题是FSO需要尾随反斜杠来标识与目录相关的路径,这在使用

MoveFile()
方法时也是如此。

要解决问题,请替换此行

Dim sFolder: sFolder = "C:\Alfa test"

Dim sFolder: sFolder = "C:\Alfa test\"
© www.soinside.com 2019 - 2024. All rights reserved.