ZetCode

VBScript ParentFolder 属性

最后修改于 2025 年 4 月 9 日

VBScript 中的 ParentFolder 属性是 FileSystemObject 对象模型的一部分。它返回指定文件或文件夹父文件夹的对象。此属性是只读的,可用于访问包含目录。对于导航文件系统层次结构至关重要。

ParentFolder 可与 FileFolder 对象配合使用。它允许以编程方式向上移动目录树。本教程将通过实际示例介绍 ParentFolder,以演示其在各种场景中的用法。

ParentFolder 属性概述

ParentFolder 属性返回一个代表父目录的 Folder 对象。它可用于 FileSystemObjectFileFolder 对象。此属性不会修改文件系统。

主要功能包括对父目录信息的只读访问。当用于根目录时,它会引发错误。ParentFolder 允许无需硬编码路径即可进行导航。了解此属性有助于创建灵活的文件系统脚本。

获取文件的父文件夹

此示例演示如何获取特定文件的父文件夹。它展示了 ParentFolder 属性与文件对象的常规用法。该脚本检索并显示父文件夹的路径。

file_parent.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.GetFile("C:\Documents\report.docx")
Set parentFolder = file.ParentFolder

WScript.Echo "Parent folder: " & parentFolder.Path ' Output: C:\Documents

Set file = Nothing
Set parentFolder = Nothing
Set fso = Nothing

该脚本创建一个 FileSystemObject 并获取一个文件对象。ParentFolder 属性返回包含该文件的文件夹。然后显示该文件夹的路径。当您需要处理文件的目录时,这非常有用。

获取文件夹的父文件夹

此示例展示了如何获取另一个文件夹的父文件夹。它演示了 ParentFolder 与文件夹对象的用法。该脚本在目录结构中向上移动一级。

folder_parent.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\Projects\Website\Images")
Set parentFolder = folder.ParentFolder

WScript.Echo "Parent folder: " & parentFolder.Path ' Output: C:\Projects\Website

Set folder = Nothing
Set parentFolder = Nothing
Set fso = Nothing

该脚本获取 "C:\Projects\Website\Images" 的文件夹对象。ParentFolder 属性返回其父目录。然后显示父文件夹的路径。此技术对于相对导航很有用。

处理根目录情况

此示例演示了尝试获取根目录的父文件夹时会发生什么。在这种情况下,ParentFolder 属性会引发错误。该脚本包含错误处理以管理这种情况。

root_directory.vbs
On Error Resume Next

Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\")
Set parentFolder = folder.ParentFolder

If Err.Number <> 0 Then
    WScript.Echo "Cannot get parent of root directory"
Else
    WScript.Echo "Parent folder: " & parentFolder.Path
End If

On Error GoTo 0

Set folder = Nothing
Set parentFolder = Nothing
Set fso = Nothing

该脚本尝试获取 "C:\" 的父文件夹。由于这是一个根目录,它没有父文件夹。错误会被捕获并得到妥善处理。这展示了在处理文件系统边界时的正确错误处理。

向上导航多个级别

此示例演示如何使用 ParentFolder 属性向上导航多个目录级别。它演示了通过链式访问父文件夹来在目录树中向上移动多个级别。

multi_level.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\Projects\Website\Images\Products")
Set parent1 = folder.ParentFolder
Set parent2 = parent1.ParentFolder
Set parent3 = parent2.ParentFolder

WScript.Echo "Level 1 parent: " & parent1.Path ' C:\Projects\Website\Images
WScript.Echo "Level 2 parent: " & parent2.Path ' C:\Projects\Website
WScript.Echo "Level 3 parent: " & parent3.Path ' C:\Projects

Set folder = Nothing
Set parent1 = Nothing
Set parent2 = Nothing
Set parent3 = Nothing
Set fso = Nothing

该脚本从一个较深的文件夹路径开始。然后它访问了三个级别的父文件夹。每一步都向上移动一个目录级别。此技术对于在不知道确切路径结构的情况下查找祖先目录很有用。

检查父文件夹的属性

此示例演示如何访问父文件夹的属性。获取父文件夹对象后,我们可以检查其属性。该脚本显示了通过父文件夹引用可用的常见文件夹属性。

folder_properties.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.GetFile("C:\Documents\report.docx")
Set parentFolder = file.ParentFolder

WScript.Echo "Parent folder name: " & parentFolder.Name
WScript.Echo "Date created: " & parentFolder.DateCreated
WScript.Echo "Number of files: " & parentFolder.Files.Count

Set file = Nothing
Set parentFolder = Nothing
Set fso = Nothing

该脚本获取文件的父文件夹并检查其属性。它显示了文件夹名称、创建日期和文件数量。这表明 ParentFolder 如何能够检查目录特性。此类信息对于文件管理脚本很有价值。

来源

FileSystemObject 文档

在本文中,我们探讨了 VBScript 中的 ParentFolder 属性,涵盖了其用法和实际应用。从基本的父目录访问到多级导航,这些示例演示了基本的文件系统操作。通过这些知识,您可以为脚本添加强大的目录导航功能。

作者

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

列出所有 VBScript 教程