ZetCode

VBScript GetExtensionName 方法

最后修改于 2025 年 4 月 9 日

VBScript 中的 GetExtensionName 方法是 FileSystemObject 的一部分。它从文件路径或文件名中提取扩展名。此方法返回最后一个点之后的部分,包括该点本身。它通常用于文件操作和验证脚本。

GetExtensionName 可以处理完整路径和简单的文件名。如果没有扩展名,它将返回一个空字符串。本教程将通过实际示例涵盖 GetExtensionName 的用法。

GetExtensionName 方法概述

GetExtensionName 方法接受一个参数:路径或文件名。它返回一个包含文件扩展名的字符串。该方法可通过 VBScript 脚本中的 FileSystemObject 访问。

主要功能包括保留大小写和包含点。它不验证文件是否存在或是否有效。GetExtensionName 可与绝对路径和相对路径一起使用。理解此方法有助于创建健壮的文件处理脚本。

基本文件扩展名提取

此示例演示了 GetExtensionName 获取文件扩展名的最简单用法。它展示了该方法如何提取最后一个点之后的部分。返回的扩展名值中包含点字符。

basic_extension.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
extension = fso.GetExtensionName("document.docx")
WScript.Echo extension ' Output: .docx

Set fso = Nothing

脚本创建一个 FileSystemObject 并调用 GetExtensionName。处理文件名 "document.docx" 以提取 ".docx"。请注意,点包含在返回的扩展名字符串中。

处理完整路径

GetExtensionName 可处理完整的文件路径,而不仅仅是文件名。此示例展示了它如何从完整路径中提取扩展名。该方法正确识别路径字符串中的最后一个点。

full_path_extension.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
path = "C:\Users\Public\Documents\report.pdf"
extension = fso.GetExtensionName(path)

WScript.Echo extension ' Output: .pdf

Set fso = Nothing

脚本处理完整的文件路径并提取 ".pdf" 扩展名。GetExtensionName 会忽略目录结构中的所有点。它仅考虑实际文件扩展名之前的点。

无扩展名的文件

此示例演示了 GetExtensionName 对无扩展名文件的行为。当不存在扩展名时,该方法将返回一个空字符串。这对于验证和条件处理很有用。

no_extension.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
result1 = fso.GetExtensionName("README")
result2 = fso.GetExtensionName("archive.tar.gz")

WScript.Echo result1 ' Output: (empty string)
WScript.Echo result2 ' Output: .gz

Set fso = Nothing

第一个调用对没有扩展名的 "README" 返回空字符串。第二个调用显示它只获取多扩展名文件(如 .gz)的最后一个扩展名。此行为对于脚本中正确的文件处理很重要。

扩展名的大小写敏感性

GetExtensionName 保留扩展名的原始大小写。此示例演示了在返回值中如何维护大小写。该方法不会修改扩展名字符的大小写。

case_sensitivity.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
ext1 = fso.GetExtensionName("image.JPEG")
ext2 = fso.GetExtensionName("program.CS")

WScript.Echo ext1 ' Output: .JPEG
WScript.Echo ext2 ' Output: .CS

Set fso = Nothing

脚本显示大写扩展名在输出中保持大写。此行为与 VBScript 通常的大小写保留一致。应用程序在比较扩展名时应处理大小写差异。

处理多个文件

此示例展示了如何在循环中使用 GetExtensionName 来处理多个文件。它展示了在文件管理脚本中的实际应用。该方法可以有效地从文件名数组中提取扩展名。

multiple_files.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
files = Array("data.txt", "config.ini", "backup.zip", "notes")

For Each file In files
    extension = fso.GetExtensionName(file)
    WScript.Echo file & " - Extension: " & extension
Next

Set fso = Nothing

脚本处理数组中的每个文件,打印其名称和扩展名。请注意,最后一个文件 "notes" 没有显示扩展名。此模式对于在脚本中按类型对文件进行分类或过滤很有用。

来源

FileSystemObject 文档

在本文中,我们探讨了 VBScript 中的 GetExtensionName 方法,涵盖了其用法和实际应用。从简单的文件名处理到复杂的文件管理任务,这些示例展示了可靠的扩展名提取。有了这些知识,您就可以通过健壮的扩展名管理来增强您的文件处理脚本。

作者

我叫 Jan Bodnar,是一名充满激情的程序员,拥有多年的编程经验。我自 2007 年以来一直在撰写编程文章。到目前为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面有八年以上的经验。

列出所有 VBScript 教程