ZetCode

VBScript GetFolder 方法

最后修改于 2025 年 4 月 9 日

VBScript 中的 GetFolder 方法是 FileSystemObject 的一部分。它返回一个与指定路径对应的 Folder 对象。此方法允许访问文件夹的属性和内容。对于 VBScript 中的目录管理和文件系统操作至关重要。

GetFolder 要求文件夹路径必须存在;否则它会抛出错误。它提供对文件夹属性、文件和子文件夹的访问。本教程通过实际示例涵盖 GetFolder,以演示其在各种场景中的用法。

GetFolder 方法概述

GetFolder 方法接受一个参数:要访问的文件夹的路径。它返回一个具有用于文件夹操作的属性和方法的 Folder 对象。该方法可通过 VBScript 中的 FileSystemObject 获得。

主要功能包括访问文件夹属性、大小和内容。Folder 对象提供了复制、移动和删除文件夹的方法。GetFolder 对于 VBScript 自动化脚本中任何与文件夹相关的操作都至关重要。

基本文件夹信息

此示例演示了 GetFolder 的基本用法,用于检索文件夹属性。它展示了如何访问常见的文件夹属性,如名称、路径和创建日期。该脚本显示有关指定文件夹的信息。

basic_getfolder.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\Temp")

WScript.Echo "Folder Name: " & folder.Name
WScript.Echo "Path: " & folder.Path
WScript.Echo "Date Created: " & folder.DateCreated
WScript.Echo "Size: " & folder.Size & " bytes"

Set folder = Nothing
Set fso = Nothing

该脚本创建了一个 FileSystemObject,并为 "C:\Temp" 调用 GetFolder。然后它显示基本的文件夹属性。请注意,Size 包括所有文件和子文件夹(递归)。

列出文件夹内容

此示例展示了如何使用 GetFolder 列出文件夹中的所有文件。它演示了如何访问 Folder 对象的 Files 集合。将显示每个文件的名称和大小。

list_files.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\Temp")

WScript.Echo "Files in " & folder.Path & ":"
For Each file In folder.Files
    WScript.Echo file.Name & " - " & file.Size & " bytes"
Next

Set folder = Nothing
Set fso = Nothing

该脚本检索 "C:\Temp" 中的所有文件,并通过 Files 集合进行迭代。对于每个文件,它会显示名称和大小。此模式对于文件处理脚本和目录列表非常有用。

使用子文件夹

GetFolder 可以通过 SubFolders 集合访问子文件夹。此示例演示了枚举给定文件夹的所有子文件夹。将显示每个子文件夹的名称和创建日期。

list_subfolders.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\Program Files")

WScript.Echo "Subfolders in " & folder.Path & ":"
For Each subfolder In folder.SubFolders
    WScript.Echo subfolder.Name & " - Created: " & subfolder.DateCreated
Next

Set folder = Nothing
Set fso = Nothing

该脚本列出了 "C:\Program Files" 中的所有子文件夹。SubFolders 集合提供了对所有直接子文件夹的访问。这对于递归目录处理或文件夹结构分析非常有用。

检查文件夹是否存在

此示例展示了如何在调用 GetFolder 之前安全地检查文件夹是否存在。它演示了错误处理,以避免在文件夹不存在时出现运行时错误。使用 FolderExists 方法进行验证。

check_folder.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
folderPath = "C:\NonexistentFolder"

If fso.FolderExists(folderPath) Then
    Set folder = fso.GetFolder(folderPath)
    WScript.Echo "Folder found: " & folder.Path
Else
    WScript.Echo "Folder does not exist: " & folderPath
End If

Set fso = Nothing

该脚本首先使用 FolderExists 检查文件夹是否存在。这可以防止在对不存在的路径调用 GetFolder 时出现错误。此模式对于脚本中健壮的文件夹处理至关重要。

复制文件夹

此示例演示了如何使用 GetFolder 执行文件夹操作。它展示了如何将文件夹及其内容复制到新位置。使用 Folder 对象的 Copy 方法执行此操作。

copy_folder.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
sourcePath = "C:\Temp\Source"
destPath = "C:\Temp\Destination"

If fso.FolderExists(sourcePath) Then
    Set sourceFolder = fso.GetFolder(sourcePath)
    sourceFolder.Copy destPath
    WScript.Echo "Folder copied successfully"
Else
    WScript.Echo "Source folder not found"
End If

Set fso = Nothing

该脚本将 "C:\Temp\Source" 复制到 "C:\Temp\Destination"。Copy 方法会递归处理所有内容。请注意,目标文件夹必须不存在才能成功执行操作。

来源

FileSystemObject 文档

在本文中,我们探讨了 VBScript 中的 GetFolder 方法,涵盖了它的用法和实际应用。从基本文件夹信息到复制等复杂操作,这些示例演示了重要的文件夹管理技术。有了这些知识,您就可以通过强大的目录处理功能来增强您的脚本。

作者

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

列出所有 VBScript 教程