ZetCode

VBScript GetFileName 方法

最后修改于 2025 年 4 月 9 日

VBScript 中的 GetFileName 方法是 FileSystemObject 的一部分。它从完整的路径字符串中提取文件名部分。此方法对于在脚本中解析文件路径非常有用。它返回路径的最后一个组件,无论是文件还是目录。

GetFileName 同时处理路径中的文件和目录。它适用于绝对路径和相对路径。该方法不验证文件是否存在。本教程通过实际示例涵盖 GetFileName 以演示其用法。

GetFileName 方法概述

GetFileName 方法接受一个参数:一个完整的路径字符串。它返回路径中的文件名或最后一个目录名。该方法可通过 VBScript 脚本中的 FileSystemObject 访问。

主要功能包括在没有文件系统检查的情况下进行路径解析。它适用于所有有效的路径格式。GetFileName 通常与其他文件操作一起使用。了解此方法有助于创建健壮的文件处理脚本。

基本文件名提取

此示例演示了 GetFileName 从完整路径中提取文件名的最简单用法。它展示了该方法如何隔离文件部分。路径可以包含目录和驱动器号。

basic_getfilename.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
fileName = fso.GetFileName("C:\Documents\Report.docx")
WScript.Echo fileName ' Output: Report.docx

Set fso = Nothing

该脚本创建一个 FileSystemObject 并调用 GetFileName。解析完整的路径 "C:\Documents\Report.docx"。结果是 "Report.docx"。该方法正确识别了文件组件。

处理目录路径

GetFileName 也可用于目录路径和文件。此示例显示了该方法如何返回最后一个目录名。它演示了对不同路径类型的持续行为。

directory_path.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
dirName = fso.GetFileName("C:\Projects\Website\Images")

WScript.Echo dirName ' Output: Images

Set fso = Nothing

该脚本从目录路径中提取 "Images"。GetFileName 将最后一个路径组件视为目标。此行为在处理目录结构时非常有用。

处理网络路径

GetFileName 可以与本地路径一样解析网络路径(UNC 路径)。此示例显示了从共享网络位置提取。该方法正确处理双反斜杠。

network_path.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
fileName = fso.GetFileName("\\Server\Share\Documents\Budget.xlsx")

WScript.Echo fileName ' Output: Budget.xlsx

Set fso = Nothing

UNC 路径被解析以提取 "Budget.xlsx"。GetFileName 忽略服务器和共享名称。它只关注最后一个路径组件,而不管路径类型。

处理带尾部反斜杠的路径

此示例演示了 GetFileName 如何处理带尾部反斜杠的路径。该方法可以正确处理这些情况,而不会返回空字符串。它显示了健壮的路径解析行为。

trailing_backslash.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
path1 = fso.GetFileName("C:\Temp\file.txt\")
path2 = fso.GetFileName("C:\Temp\file.txt")

WScript.Echo path1 ' Output: file.txt
WScript.Echo path2 ' Output: file.txt

Set fso = Nothing

尽管结尾不同,但这两个路径会产生相同的结果。GetFileName 在解析前会规范化路径。这使得该方法对于真实脚本中的各种路径格式都非常可靠。

从相对路径中提取

GetFileName 也适用于相对路径和绝对路径。此示例显示了从相对路径中提取文件名。该方法不需要路径是完全限定的。

relative_path.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
fileName = fso.GetFileName("..\..\Downloads\setup.exe")

WScript.Echo fileName ' Output: setup.exe

Set fso = Nothing

带有父目录引用的相对路径被正确解析。GetFileName 无论路径的相对性如何,都会提取 "setup.exe"。这种灵活性在脚本的可移植性方面很有价值。

来源

FileSystemObject 文档

在本文中,我们探讨了 VBScript 中的 GetFileName 方法,涵盖了其用法和实际应用。从简单的文件路径到复杂的网络位置,这些示例展示了可靠的路径解析。通过这些知识,您可以使用健壮的路径管理来增强您的文件处理脚本。

作者

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

列出所有 VBScript 教程