快速业务通道

VBS 显示“选择文件或文件夹”对话框的代码

作者 佚名 来源 ASP编程 浏览 发布时间 2013-07-09

一、显示“选择文件”的对话框

问: 嗨,Scripting Guy!有没有什么方法可以让我使用脚本向用户显示一个对话框,供用户选择文件使用?

答:您好。|
  如果您使用的是 Windows 2000,我们不知道实现此操作的方法,至少操作系统中没有内置这样的方法。
  但如果您使用的是 Windows XP,情况就不同了。在 Windows XP 上,您可以使用"UserAccounts.CommonDialog” 对象向用户显示一个标准的“文件打开”对话框。

可以用类似以下代码的脚本:

复制代码 代码如下:

Set objDialog = CreateObject("UserAccounts.CommonDialog")

objDialog.Filter = "All Files|*.*"
objDialog.InitialDir = "C:\"
intResult = objDialog.ShowOpen
If intResult = 0 Then
Wscript.Quit
Else
Wscript.Echo objDialog.FileName
End If

这是一个小脚本,所以让我们逐行进行解释吧:

1)我们首先创建一个对 UserAccounts.CommonDialog 对象的对象引用(名为“objDialog”)。

2)接着,我们设置对话框的“筛选”属性。我们要显示所有文件,所以我们将筛选设置成这样:
objDialog.Filter = "All Files|*.*"

假如我们只想显示文本文件,那该怎么办?在这种情况下,我们将使用以下筛选:
objDialog.Filter = "Text Files|*.txt"

您也许能够看出它是如何运行的:我们为文件类型提供说明 (Text Files),然后插入一个竖线分隔符 (|),最后使用标准的通配符来指示所有 .txt 文件 (*.txt)。
是不是想默认显示 .txt 文件,然后为用户提供查看所有文件的选项?那么可以使用以下代码:
objDialog.Filter = "Text Files|*.txt|All Files|*.*"

试一试,您就明白我们的意思了。

3)然后,我们指定默认文件夹。
默认情况下,我们希望对话框显示位于驱动器 C 的根文件夹中的文件,所以我们这样设置“InitialDir”属性:
objDialog.InitialDir = "C:\"

希望显示 C:\Windows 文件夹中的文件吗?那么可以使用以下代码:
objDialog.InitialDir = "C:\Windows"

不必担心:这是一个真正的“文件打开”对话框,所以您可以随意单击,并且可以随时停下来。您从 C:\Windows 开始并不意味着您只能打开该文件夹中的文件。

4)最后,我们使用下面这行代码显示对话框:

intResult = objDialog.ShowOpen

  现在,我们只需坐下来,等待用户选择文件并单击“确定”(或者等待用户单击“取消”)。
  如果用户单击“取消”,则变量 intResult 将被设置为 0。在我们的脚本中,我们检查 intResult 的值,如果是 0,我们将只需要使用 Wscript.Quit 来终止此脚本。
  但是如果用户实际上选择了文件并单击了“确定”,那该怎么办?在这种情况下,intResult 将被设置为 -1,“FileDialog”属性将被设置为所选文件的路径名。我们的脚本只回显路径名,这意味着我们将得到类似以下内容的输出:

C:\WINDOWS\Prairie Wind.bmp

  不用说,您并不局限于只回显文件路径。实际上,您可以使用 WMI、FileSystemObject 或一些其他技术来绑定该文件,然后对其执行删除、复制、压缩或检索文件属性等操作 — 您对文件能够执行的操作差不多都可以对它执行。

  但无论如何,您都需要使用脚本。

  顺便说一句,使用此方法,您一次只能选择一个文件,而不能按住“Ctrl”键选择多个文件。有一种方法可以选择多个文件,至少在 XP 计算机上可以,但是我们只能将此问题留到以后的专栏中讨论了。

二、显示“选择文件夹”对话框?

问:嗨,脚本专家!在前面的专栏中,您为我们展示了如何给用户显示对话框,使他们能够选择文件。存在给用户显示一个对话框,只让他们选择文件夹的办法吗?

答:您好。

  实际上,我们有 BrowseForFolder 方法,它是 Windows Shell 对象的一部分。

  让我给您一个脚本示例,然后讲一下它的工作方式

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号