ZetCode

VBScript FileSystemObject

最后修改于 2025 年 4 月 4 日

FileSystemObject (FSO) 在 VBScript 中提供对计算机文件系统的访问。它允许您创建、读取、更新和删除文件和文件夹。本教程通过文件操作、文件夹管理和文本文件操作的实际示例,涵盖了 FileSystemObject。

FileSystemObject 概述

FileSystemObject 是 Scripting Runtime 库的一部分。它提供了处理驱动器、文件夹和文件的方法。要使用 FSO,请使用 CreateObject("Scripting.FileSystemObject") 创建一个实例。对象模型包括 Drive、Folder 和 File 对象。

FSO 通过 TextStream 对象支持文本文件操作。这些允许逐行读写文本文件。该库默认在 Windows 系统上可用,非常适合自动化脚本。

创建和写入文本文件

此示例演示了创建新文本文件并向其中写入内容。CreateTextFile 方法创建文件,而 WriteLine 添加文本。始终在操作后关闭文件。

create_file.vbs
Dim fso, file
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.CreateTextFile("C:\temp\example.txt", True)

file.WriteLine "This is line 1"
file.WriteLine "This is line 2"
file.Close

WScript.Echo "File created and written successfully"

该脚本首先创建一个 FileSystemObject 实例。然后它在指定路径创建一个新文件。第二个参数 (True) 会覆盖现有文件。写入两行后,它会关闭文件以释放系统资源。

从文本文件中读取

此示例展示了如何从现有文本文件中读取内容。OpenTextFile 方法打开文件,ReadLine 逐行读取内容。AtEndOfStream 属性检查文件末尾。

read_file.vbs
Dim fso, file, content
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\temp\example.txt", 1) ' 1 = ForReading

Do Until file.AtEndOfStream
    content = file.ReadLine
    WScript.Echo content
Loop

file.Close

该脚本以读取模式 (1) 打开文件。然后它读取每一行,直到到达文件末尾。每一行都使用 WScript.Echo 显示。最后,文件被正确关闭。应为生产环境添加错误处理。

检查文件存在性和属性

此示例演示了如何检查文件是否存在以及访问其属性。FileExists 方法检查是否存在,而 File 对象提供大小和创建日期等属性。

file_properties.vbs
Dim fso, file
Set fso = CreateObject("Scripting.FileSystemObject")
filePath = "C:\temp\example.txt"

If fso.FileExists(filePath) Then
    Set file = fso.GetFile(filePath)
    WScript.Echo "File exists"
    WScript.Echo "Size: " & file.Size & " bytes"
    WScript.Echo "Created: " & file.DateCreated
    WScript.Echo "Modified: " & file.DateLastModified
Else
    WScript.Echo "File does not exist"
End If

脚本首先检查文件是否存在。如果存在,它将检索 File 对象并显示多个属性。这些包括文件大小、创建日期和最后修改日期。这对于文件管理脚本很有用。

创建和删除文件夹

此示例展示了使用 FSO 的文件夹操作。CreateFolder 方法创建新目录,而 DeleteFolder 删除它们。可以使用 FolderExists 检查文件夹是否存在。

folder_operations.vbs
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
folderPath = "C:\temp\newfolder"

If Not fso.FolderExists(folderPath) Then
    fso.CreateFolder(folderPath)
    WScript.Echo "Folder created"
Else
    WScript.Echo "Folder already exists"
    fso.DeleteFolder(folderPath)
    WScript.Echo "Folder deleted"
End If

脚本检查文件夹是否存在。如果不存在,则创建一个。如果文件夹存在,则删除它。这些操作是目录管理的基础。在操作之前始终验证文件夹是否存在,以防止错误。

复制和移动文件

此示例演示了文件复制和移动操作。CopyFile 方法复制文件,而 MoveFile 移动它们。两种方法都可以谨慎地覆盖现有文件。

file_copy_move.vbs
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
sourceFile = "C:\temp\example.txt"
destFile = "C:\temp\backup\example_copy.txt"

' Copy file
fso.CopyFile sourceFile, destFile, True ' True = overwrite
WScript.Echo "File copied"

' Move file
newLocation = "C:\temp\archive\example.txt"
fso.MoveFile sourceFile, newLocation
WScript.Echo "File moved"

脚本首先将文件复制到备份位置,必要时进行覆盖。然后它将原始文件移动到存档文件夹。这些操作对于文件组织和备份脚本很有用。路径必须有效。

来源

FileSystemObject 文档

在本文中,我们探讨了 VBScript 中的 FileSystemObject,涵盖了文件和文件夹操作。从创建和读取文件到管理目录和文件属性,这些示例为脚本任务提供了实用的技能。有了这些知识,您就可以在 VBScript 项目中自动化文件系统操作。

作者

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

列出所有 VBScript 教程