ZetCode

VBScript 文件属性

最后修改于 2025 年 4 月 9 日

VBScript 中的 Files 属性是 FileSystemObjectFolder 对象的一部分。它返回指定文件夹中所有文件的集合。此属性支持在目录中进行高效的文件枚举和操作。它对于 VBScript 中的文件管理任务至关重要。

Files 集合提供了对具有其属性和方法的单个文件对象的访问。您可以遍历文件、检查其属性或执行操作。本教程将通过实际示例介绍 Files 属性,以演示其用法。

Files 属性概述

Files 属性返回一个 Files 集合对象,其中包含文件夹中的所有文件。每个文件都表示为一个 File 对象,具有 Name、Size 和 DateCreated 等属性。该集合通过 Folder 对象访问。

主要功能包括能够计算文件数量以及按索引或名称访问它们。该集合是只读的;您无法直接添加或删除文件。了解此属性有助于创建强大的文件管理脚本。

列出文件夹中的所有文件

此示例演示了如何检索和显示指定文件夹中的所有文件。它通过简单的迭代展示了 Files 属性的基本用法。脚本列出了目标目录中的文件名。

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

For Each file In files
    WScript.Echo file.Name
Next

Set files = Nothing
Set folder = Nothing
Set fso = Nothing

该脚本创建一个 FileSystemObject 并获取一个文件夹引用。Files 属性返回文件夹中的所有文件。For Each 循环遍历集合,显示每个文件名。适当的清理会释放所有对象引用。

计算目录中的文件数量

此示例使用 Files 集合的 Count 属性显示如何计算目录中的文件数量。它演示了无需遍历每个文件即可快速枚举文件。计数包括指定文件夹中的所有文件。

count_files.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\Windows\System32")
fileCount = folder.Files.Count

WScript.Echo "Number of files: " & fileCount

Set folder = Nothing
Set fso = Nothing

该脚本访问 System32 目录并检索其文件计数。Count 属性可立即提供文件的总数。这对于获取目录统计信息而不单独处理每个文件非常有效。

按扩展名筛选文件

此示例演示了如何使用 Files 集合按扩展名过滤文件。它显示了如何在迭代期间检查文件扩展名。该脚本仅显示具有特定扩展名(在此情况下为 .txt)的文件。

filter_files.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\Documents")
Set files = folder.Files

For Each file In files
    If LCase(fso.GetExtensionName(file.Name)) = "txt" Then
        WScript.Echo file.Name
    End If
Next

Set files = Nothing
Set folder = Nothing
Set fso = Nothing

该脚本使用 GetExtensionName 检查每个文件的扩展名。仅显示扩展名为 .txt 的文件。此模式可用于任何文件类型过滤器。比较使用小写字母以确保不区分大小写匹配。

访问文件属性

此示例演示了如何访问 Files 集合中文件的各种属性。它演示了检索大小、创建日期和其他属性。每个文件对象都包含有价值的元数据。

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

For Each file In files
    WScript.Echo "Name: " & file.Name
    WScript.Echo "Size: " & file.Size & " bytes"
    WScript.Echo "Created: " & file.DateCreated
    WScript.Echo "Modified: " & file.DateLastModified
    WScript.Echo "---------------------"
Next

Set files = Nothing
Set folder = Nothing
Set fso = Nothing

该脚本显示 Temp 目录中每个文件的多个属性。属性包括名称、大小、创建和修改日期。这些信息对于文件管理和报告任务非常有用。每个文件对象都提供这些标准属性。

检查特定文件

此示例演示了如何检查文件夹的 Files 集合中是否存在特定文件。它显示了如何按名称搜索文件。该脚本在不使用 FileExists 方法的情况下验证文件是否存在。

check_file.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\ImportantFiles")
Set files = folder.Files
targetFile = "report.xlsx"
fileExists = False

For Each file In files
    If LCase(file.Name) = LCase(targetFile) Then
        fileExists = True
        Exit For
    End If
Next

If fileExists Then
    WScript.Echo targetFile & " exists in the folder."
Else
    WScript.Echo targetFile & " not found."
End If

Set files = Nothing
Set folder = Nothing
Set fso = Nothing

该脚本在 ImportantFiles 目录中搜索“report.xlsx”。它使用不区分大小写的比较来匹配文件名。当您需要处理找到的文件时,此方法很有用。找到文件后,循环会提前退出。

来源

FileSystemObject 文档

在本文中,我们探讨了 VBScript 中的 Files 属性,涵盖了其用法和实际应用。从简单的文件列表到复杂的过滤和属性访问,这些示例演示了强大的文件管理功能。有了这些知识,您就可以通过可靠的集合操作来增强您的文件处理脚本。

作者

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

列出所有 VBScript 教程