描述
提供对计算机文件系统的访问。
语法
Scripting.FileSystemObject
说明
下面的代码举例说明了如何使用 FileSystemObject 返回一个 TextStream 对象,该对象是可读并可写的:
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\estfile.txt", True)
a.WriteLine("This is a test.")
a.Close
在上面列出的代码中,CreateObject 函数返回 FileSystemObject (fs)。CreateTextFile 方法接着创建文件作为一个 TextStream 对象(a),而 WriteLine 方法则向创建的文本文件中写入一行文本。Close 方法刷新缓冲区并关闭文件。
属性 顶部 方法
| 属性 | 描述 |
| Drives | 返回包含本地机器上所有可用 Drive 对象的 Drives 集合。 |
描述
返回包含本地机器上所有可用 Drive 对象的 Drives 集合。
语法
object.Drives
object 总是一个 FileSystemObject。
说明
对于可删除媒体驱动器来说,不需要插入媒体,就可使其出现在 Drives 集合中。
可以用 For Each...Next 结构遍及 Drives 集合中的成员,如下面的代码所示:
Sub ShowDriveList
Dim fs, d, dc, s, n
Set fs = CreateObject("Scripting.FileSystemObject")
Set dc = fs.Drives
For Each d in dc
s = s & d.DriveLetter & " - "
If d.DriveType = 3 Then
n = d.ShareName
Else
n = d.VolumeName
End If
s = s & n & vbCrLf
Next
MsgBox s
End Sub
方法 顶部 属性
| 方法 | 描述 |
| BuildPath | 追加一个名字到一个已经存在的路径。 |
| CopyFile | 把一个或多个文件从一个地方复制到另一个地方。 |
| CopyFolder | 从一个地方递归地复制一个文件夹到另一个地方。 |
| CreateFolder | 创建一个文件夹。 |
| CreateTextFile | 创建一个指定的文件名并且返回一个用于该文件读写的 TextStream 对象。 |
| DeleteFile | 删除一个指定的文件。 |
| DeleteFolder | 删除一个指定的文件夹和它的内容。 |
| DriveExists | 如果指定的驱动器存在,返回 True,如果不存在返回 False。 |
| FileExists | 如果指定的文件存在,返回 True,若不存在,则返回 False。 |
| FolderExists | 如果指定的文件夹存在返回 True,不存在返回 False。 |
| GetAbsolutePathName | 从提供的路径说明中返回一个完整、明确的路径。 |
| GetBaseName | 返回一个包含路径中最后部件的基本名字(去掉任何文件扩展名)的字符串。 |
| GetDrive | 返回一个与指定路径中的驱动器相对应的 Drive 对象。 |
| GetDriveName | 返回一个包含指定路径的驱动器名字的字符串。 |
| GetExtensionName | 返回一个包含路径中最后部件扩展名的字符串。 |
| GetFile | 返回一个和指定路径中文件相对应的 File 对象。 |
| GetFileName | 返回指定路径中的最后部件,该路径不是驱动器说明的一部分。 |
| GetFolder | 返回一个和指定路径中文件夹相对应的 Folder 对象。 |
| GetParentFolderName | 返回一个包含指定路径最后部件父文件夹名字的字符串。 |
| der | 返回指定的特殊文件夹。 |
| GetTempName | 返回一个随机产生的临时文件或文件夹的名字,该名字在执行需要临时文件或文件夹的操作时有用。 |
| MoveFile | 将一个或多个文件从一个地方移动到另一个地方。 |
| MoveFolder | 将一个或多个文件夹从一个地方移动到另一个地方。 |
| OpenTextFile | 打开一个指定的文件并返回一个 TextStream 对象,该对象可用于对文件进行读操作或追加操作。 |
描述
追加一个名字到一个已经存在的路径。
语法
object.BuildPath(path, name)
BuildPath 方法语法有如下几部分:
| 部分 | 描述 |
| object | 必需的。始终是 FileSystemObject 的名字。 |
| path | 必需的。要对其追加名字的已存在路径。路径可以是绝对的也可以是相对的,不必指定一个已存在的文件夹。 |
| name | 必需的。要追加到已存在路径上的名字。 |
只有在需要时,BuildPath 方法才在已存在路径和名字之间插入一个附加的路径分隔符。
CopyFile 方法
描述
把一个或多个文件从一个地方复制到另一个地方。
语法
object.CopyFile source, destination[, overwrite]
CopyFile 方法语法有如下几部分:
| 部分 | 描述 |
| object | 必需的。object始终是一个 FileSystemObject 的名字。 |
| source | 必需的。指明一个或多个要被复制文件的字符串文件说明,它可以包括通配符。 |
| destination | 必需的。指明 source 中的一个或多个文件要被复制到的接受端的字符串,不允许有通配符。 |
| overwrite | 选项的。Boolean 值,它表示存在的文件是否被覆盖。如果是 True,文件将被覆盖;如果是 False,它们不被覆盖。缺省值是 True。注意如果 destination 具有只读属性设置,不论 overwrite 值如何,CopyFile 都将失败。 |
通配符只能用在 source 参数的最后一个路径部件。例如,你可以在下面请况使用通配符:
FileSystemObject.CopyFile "c:\\mydocuments\\letters\\*.doc", "c:\empfolder\\"
但下面情况不能使用:
FileSystemObject.CopyFile "c:\\mydocuments\\*\\R197.xls", "c:\empfolder"
如果 source 包含通配符或 destination 以路径分隔符(\)为结尾,则认为 destination 是一个已存在文件夹,在其中复制相匹配的文件。否则认为 destination 是一个要创建文件的名字。不论是那种情况,当复制一个文件时,可能发生三种事件。
∙如果 destination 不存在,source 得到复制。这是通常的情况。
∙如果 destination 是一个已存在的文件,则当 overwrite 值为 False 时发生一个错误,否则,source的复制文件将试图覆盖已存在文件。
∙如果 destination 是一个目录,发生一个错误。
如果使用通配符的 source 不能和任何文件匹配,同样产生一个错误。CopyFile 方法停止在它遇到的第一个错误上。不要试图回卷或撤消错误发生前所做的任何改变。
CopyFolder 方法
描述
从一个地方递归地复制一个文件夹到另一个地方。
语法
object.CopyFolder source, destination[, overwrite]
CopyFolder 方法语法有如下几部分:
| 部分 | 描述 |
| Object | 必需的。始终为一个 FileSystemObject 的名字。 |
| source | 必需的。指明一个或多个被复制文件夹的字符串文件夹说明,可以包括通配符。 |
| destination | 必需的。指明 source 中被复制文件夹和子文件夹的接受端的字符串,不允许有通配符。 |
| overwrite | 选项的。Boolean 值,它表示已存在的文件夹是否被覆盖。如果为 True,文件被覆盖。如果为 False,文件不被覆盖。缺省值为 True。 |
通配符仅可用于 source 参数的最后一个路径部件。例如你可以在下面情况使用它:
FileSystemObject.CopyFolder "c:\\mydocuments\\letters\\*", "c:\empfolder\\"
但不能在下面情况使用它:
FileSystemObject.CopyFolder "c:\\mydocuments\\*\\*", "c:\empfolder\\"
如果 source 包含通配符或 destination 以路径分隔符(\\)为结尾,则认为 destination 是一个已存在的文件夹,在其中复制相匹配的文件夹和子文件夹。否则认为 destination 是一个要创建的文件夹的名字。不论何种情况,当复制一个文件夹时,可能发生四种事件。
∙如果 destination 不存在,source 文件夹和它所有的内容得到复制。这是通常的情况。
∙如果 destination 是一个已存在的文件,则发生一个错误。
∙如果 destination 是一个目录,它将尝试复制文件夹和它所有的内容。如果一个包含在 source 的文件已在 destination 中存在,当 overwrite 为 False 时发生一个错误,否则它将尝试覆盖这个文件。
∙如果 destination 是一个只读目录,当尝试去复制一个已存在的只读文件到此目录并且 overwrite为 False 时,则发生一个错误。
如果 source 使用的通配符不能和任何文件夹匹配,也发生一个错误。
CopyFolder 方法停止在它遇到的第一个错误上。不要尝试回卷错误发生前所做的任何改变。
CreateFolder 方法
描述
创建一个文件夹。
语法
object.CreateFolder(foldername)
CreateFolder 方法有如下几部分:
| 部分 | 描述 |
| object | 必需的。始终是一个 FileSystemObject 的名字。 |
| foldername | 必需的。字符串表达式,它标识创建的文件夹。 |
如果指定的文件夹已经存在,则发生一个错误。
CreateTextFile 方法
描述
创建一个指定的文件名并且返回一个用于该文件读写的 TextStream 对象。
语法
object.CreateTextFile(filename[, overwrite[, unicode]])
CreateTextFile 方法有如下几部分:
| 部分 | 描述 |
| object | 必需的。始终是一个 FileSystemObject 或 Folder 对象的名字。 |
| filename | 必需的。字符串表达式,它标识创建的文件。 |
| overwrite | 可选的。Boolean 值,表示一个已存在文件是否可被覆盖。如果可被覆盖其值为 True,其值为 False 时不能覆盖。如果它被省略,则已存在文件不能覆盖。 |
| unicode | 可选的。Boolean 值,表示文件是作为一个 Unicode 文件创建的还是作为一个ASCII 文件创建的。如果作为一个 Unicode 文件创建,其值为 True,作为一个 ASCII 文件创建,其值为 False。如果省略的话,则认为是一个 ASCII 文件。 |
下面的代码举例说明如何使用 CreateTextFile 方法创建和打开文本文件。
Sub CreateAfile
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\estfile.txt", True)
a.WriteLine("This is a test.")
a.Close
End Sub
对于一个已经存在的 filename,如果 overwrite 参数是 False 或者没有提供,则发生一个错误。
DeleteFile 方法
描述
删除一个指定的文件。
语法
object.DeleteFile filespec[, force]
DeleteFile 方法语法有如下几部分:
| 部分 | 描述 |
| object | 必需的。始终是一个 FileSystemObject 的名字。 |
| filespec | 必需的。要删除文件的名字。Filespec 可以在最后的路径部件中包含通配符。 |
| force | 可选的。Boolean 值,如果要删除具有只读属性设置的文件,其值为 True。如果其值为 False (缺省),则不能删除具有只读属性设置的文件。 |
如果没有发现相匹配的文件,则产生一个错误。DeleteFile 方法停在它遇到的第一个错误上。不要尝试回卷或撤消错误发生前所做的任何改变。
DeleteFolder 方法
描述
删除一个指定的文件夹和它的内容。
语法
object.DeleteFolder folderspec[, force]
DeleteFolder 方法语法有如下几部分:
| 部分 | 描述 |
| object | 必需的。始终是一个 FileSystemObject 的名字。 |
| folderspec | 必需的。要删除的文件夹的名字。 Folderspec 可以在最后的路径部件中包含通配符。 |
| force | 可选的。Boolean 值,如果要删除具有只读属性设置的文件夹,其值为 True,如果值为 False (缺省),则不能删除具有只读属性设置的文件夹。 |
DeleteFolder方法对文件夹中有无内容不做区别。不管指定的文件夹中是否有内容,它都被删除。
如果没有发现相匹配的文件夹,则发生一个错误。DeleteFolder 方法停止在它遇到的第一个错误上,不要尝试回卷或撤消错误发生前所做的任何改变。
DriveExists 方法
描述
如果指定的驱动器存在,返回 True,如果不存在返回 False。
语法
object.DriveExists(drivespec)
DriveExists 方法语法有如下几部分:
| 部分 | 描述 |
| Object | 必需的。始终是一个 FileSystemObject 的名字。 |
| Drivespec | 必需的。一个驱动器字符或一个完整的路径说明。 |
对于可删除介质的驱动器,即使没有介质存在, DriveExists 方法也返回 True。使用 Drive 对象的 IsReady 属性确定驱动器是否准备好。
FileExists 方法
描述
如果指定的文件存在,返回 True,若不存在,则返回 False。
语法
object.FileExists(filespec)
FileExists 方法语法有如下几部分:
| 部分 | 描述 |
| object | 必需的。始终是一个 FileSystemObject 的名字。 |
| filespec | 必需的。要确定是否存在的文件的名字。如果认为文件不在当前文件夹中,必须提供一个完整的路径说明(绝对的或相对的)。 |
描述
如果指定的文件夹存在返回 True,不存在返回 False。
语法
object.FolderExists(folderspec)
FolderExists 方法语法有如下几部分:
| 部分 | 描述 |
| object | 必需的。始终是一个 FileSystemObject 对象的名字。 |
| folderspec | 必需的。要确定是否存在的文件夹名字。如果认为文件夹不在当前文件夹中,必须提供一个完整的路径说明(绝对的或相对的)。 |
描述
从提供的路径说明中返回一个完整、明确的路径。
语法
object.GetAbsolutePathName(pathspec)
GetAbsolutePathName 方法语法有如下几部分:
| 部分 | 描述 |
| object | 必需的。始终是一个 FileSystemObject 的名字。 |
| pathspec | 必需的。要改变到一个完整、明确路径的路径说明。 |
一个路径如果提供了从指定驱动器根目录的一个完整引用,则该路径是完整、明确的。一个完整的路径如果指定一个被映射驱动器的根文件夹,它只能以路径分隔符(\\)为结尾。
假设当前目录是 c:\\mydocuments\\reports,下面的表说明了 GetAbsolutePathName 方法的行为。
| Pathspec | 返回的路径 |
| "c:" | "c:\\mydocuments\\reports" |
| "c:.." | "c:\\mydocuments" |
| "c:\\\\\\" | "c:\\" |
| "c:*.*\\may97" | "c:\\mydocuments\\reports\\*.*\\may97" |
| "region1" | "c:\\mydocuments\\reports\\region1" |
| "c:\\..\\..\\mydocuments" | "c:\\mydocuments" |
描述
返回一个包含路径中最后部件的基本名字(去掉任何文件扩展名)的字符串。
语法
object.GetBaseName(path)
GetBaseName 方法语法有如下几部分:
| 部分 | 描述 |
| object | 必需的。始终是一个 FileSystemObject 的名字。 |
| path | 必需的。 要返回其基本名字的部件的路径说明。 |
如果没有部件和 path 参数匹配,GetBaseName 方法返回一个长度为零的字符串("")。
注意 GetBaseName 方法只对提供的 path 字符串起作用。它既不试图去辨认路径,也不检查指定路径是否存在。
GetDrive 方法
描述
返回一个与指定路径中的驱动器相对应的 Drive 对象。
语法
object.GetDrive drivespec
GetDrive 方法语法有如下几部分:
| 部分 | 描述 |
| Object | 必需的。始终是一个 FileSystemObject 的名字。 |
| Drivespec | 必需的。drivespec参数可以是一个驱动器字符(c)、一个驱动器字符加一个冒号(c:)、一个驱动器字符加冒号和路径分隔符(c:\\)或任何网络共享的说明(\\\\computer2\\share1)。 |
对于网络共享,要进行检查以确保共享存在。
如果 drivespec 不符合任何一种可以接受的形式或者不存在,则发生一个错误。
对一个普通路径字符串调用 GetDrive 方法,使用下面步骤得到一个适合作为 drivespec 使用的字符串:
DriveSpec = GetDriveName(GetAbsolutePathName(Path))
GetDriveName 方法
描述
返回一个包含指定路径的驱动器名字的字符串。
语法
object.GetDriveName(path)
GetDriveName 方法语法有如下几部分:
| 部分 | 描述 |
| object | 必需的。始终是一个 FileSystemObject 的名字。 |
| path | 必需的。要返回其驱动器名字的部件的路径说明。 |
如果驱动器不能确定,GetDriveName 方法返回一个长度为零的字符串("")。
注意 GetDriveName 方法只对提供的路径字符串起作用。它没有尝试去辨认路径,也不对指定路径是否存在进行检查。
GetExtensionName 方法
描述
返回一个包含路径中最后部件扩展名的字符串。
语法
object.GetExtensionName(path)
GetExtensionName 方法语法有如下几部分:
| 部分 | 描述 |
| object | 必需的。始终是一个 FileSystemObject 的名字。 |
| path | 必需的。.要返回其扩展名的部件的路径说明。 |
对于网络驱动器,根目录(\)被认为是一个部件。
如果没有部件和 path 参数相匹配,GetExtensionName 方法返回一个长度为零的字符串 ("")。
GetFile 方法
描述
返回一个和指定路径中文件相对应的 File 对象。.
语法
object.GetFile(filespec)
GetFile 方法语法有如下几部分:
| 部分 | 描述 |
| object | 必需的。始终是一个 FileSystemObject. 的名字。 |
| filespec | 必需的。Filespec 是到一个指定文件的路径(绝对的或相对的)。 |
如果指定的文件不存在,则发生一个错误。
GetFileName 方法
描述
返回指定路径中的最后部件,该路径不是驱动器说明的一部分。
语法
object.GetFileName(pathspec)
GetFileName 方法语法有如下几部分:
| 部分 | 描述 |
| object | 必需的。始终是一个 FileSystemObject 的名字。 |
| pathspec | 必需的。到一个指定文件的路径(绝对的或相对的)。 |
如果 pathspec 不是以已命名部件结尾,GetFileName 方法返回一个零长度字符串("")。
注意 GetFileName 方法仅在提供的路径字符串上起作用。它没有尝试去辨认路径,也不对指定路径是否存在进行检查。
GetFolder 方法
描述
返回一个和指定路径中文件夹相对应的 Folder 对象。
语法
object.GetFolder(folderspec)
GetFolder方法语法有如下几部分:
| 部分 | 描述 |
| object | 必需的。始终是一个 FileSystemObject. 的名字。 |
| folderspec | 必需的。Folderspec 是指定文件夹的路径(绝对的和相对的)。 |
如果指定的文件夹不存在,则发生一个错误。
GetParentFolderName 方法
描述
返回一个包含指定路径最后部件父文件夹名字的字符串。
语法
object.GetParentFolderName(path)
GetParentFolderName 方法语法有如下几部分:
| 部分 | 描述 |
| object | 必需的。始终是 一个 FileSystemObject 的名字。 |
| path | 必需的。要返回其父文件夹名字的部件的路径说明。 |
如果 path 参数指定的部件没有父文件夹,则 GetParentFolderName 方法返回一个零长度字符串("")。
注意 GetParentFolderName 方法仅对提供的 path 字符串起作用。它没有尝试去辨认路径,也不对指定路径是否存在进行检查。
GetSpecialFolder 方法
描述
返回指定的特殊文件夹。
语法
object.GetSpecialFolder(folderspec)
GetSpecialFolder 方法语法有如下几部分:
| 部分 | 描述 |
| object | 必需的。始终是一个 FileSystemObject 的名字。 |
| folderspec | 必需的。要返回的特殊文件夹的名字。可以是在设置值部分中列出的任何常数。 |
folderspec 参数可为任何的下列值:
| 常数 | 值 | 描述 |
| WindowsFolder | 0 | Windows 文件夹,包含由 Windows 操作系统安装的文件。 |
| SystemFolder | 1 | 系统文件夹,包含库、字体、设备驱动程序。 |
| TemporaryFolder | 2 | Temp 文件夹,用于存储临时文件。它的路径在 TMP 环境变量中。 |
描述
返回一个随机产生的临时文件或文件夹的名字,该名字在执行需要临时文件或文件夹的操作时有用。
语法
object.GetTempName
可选的 object 始终是一个 FileSystemObject. 的名字。
说明
GetTempName 方法不产生一个文件,它仅提供一个临时文件名字,该名字可被 CreateTextFile 用于创建一个文件。
MoveFile 方法
描述
将一个或多个文件从一个地方移动到另一个地方。
语法
object.MoveFile source, destination
MoveFile 方法语法有如下几部分:
| 部分 | 描述 |
| Object | 必需的。始终是一个 FileSystemObject 的名字。 |
| Source | 必需的。一个或多个要移动文件的路径。Source 参数字符串只能在路径的最后部件中包含通配符。 |
| destination | 必需的。一个或多个文件要移动到的目标路径。 Destination 参数不能包含通配符。 |
如果 source 包含通配符或 destination 以路径分隔符 (\\) 为结尾,则认为 destination 指定了一个存在的文件夹,在此文件夹中移动相匹配的文件。否则,认为 destination 是一个要创建的目标文件名。在上面任一情况下,当移动一个文件时可能出现三种事件。
∙如果 destination 不存在,文件得到移动。这是通常的情况。
∙如果 destination 是一个已存在文件,则发生一个错误。
∙如果 destination 是一个目录,则发生一个错误。
如果一个在 source 中使用的通配符不能和任何一个文件匹配,也发生一个错误。 MoveFile 方法停止在它遇到的第一个错误上。不要尝试回卷错误发生前所做的任何改变。
重点 只有操作系统支持的情况下,这个方法才允许在卷之间移动文件。
MoveFolder 方法
描述
将一个或多个文件夹从一个地方移动到另一个地方。
语法
object.MoveFolder source, destination
MoveFolder 方法语法有如下几部分:
| 部分 | 描述 |
| object | 必需的。始终是一个 FileSystemObject 的名字。 |
| source | 必需的。一个或多个要移动的文件夹路径。Source 参数字符串只能在路径的最后部件中包含通配符。 |
| destination | 必需的。一个或多个文件夹要移动到的目标路径。Destination 参数不能包含通配符。 |
如果 source 包含通配符或 destination 以路径分隔符 (\) 为结尾,则认为 destination 指定了一个已存在的文件夹,在此文件夹中移动相匹配的文件。否则,认为 destination 是一个要创建的目标文件夹名字。在上面的任一种情况下,当一个文件夹被移动时可能出现三种情况。
∙如果 destination 不存在,文件夹得到移动。这是通常的情况。
∙如果 destination 是一个已存在文件,则发生一个错误。
∙如果 destination 是一个目录,则发生一个错误。
如果 source 中使用的一个通配符不能和任何文件夹相匹配,也发生一个错误。MoveFolder 方法停止在它遇到的第一个错误上。不要尝试回卷在错误发生前所做的任何改变。
重点 只有在操作系统支持的情况下,这个方法才允许文件夹在卷之间移动。
OpenTextFile 方法
描述
打开一个指定的文件并返回一个 TextStream 对象,该对象可用于对文件进行读操作或追加操作。
语法
object.OpenTextFile(filename[, iomode[, create[, format]]])
OpenTextFile 方法有如下几部分:
| 部分 | 描述 |
| Object | 必需的。始终是一个 FileSystemObject 的名字。 |
| filename | 必需的。字符串表达式,它标识了打开的文件。 |
| iomode | 可选的。表示输入/输出方式。可为两个常数之一:ForReading或 ForAppending。 |
| create | 可选的。Boolean 值,它表示如果指定的 filename 不存在是否可以创建一个新文件。如果创建新文件,其值为 True。若不创建文件其值为 False。缺省值为 False。 |
| format | 可选的。三种 Tristate 值之一,用于指示打开文件的格式。如果省略,则文件以 ASCII 格式打开。 |
iomode 参数可为下面设置值的任何一个:
| 常数 | 值 | 描述 |
| ForReading | 1 | 打开一个只读文件。不能对此文件进行写操作。 |
| ForAppending | 8 | 打开一个文件并写到文件的尾部。 |
| 常数 | 值 | 描述 |
| TristateUseDefault | –2 | 使用系统缺省打开文件。 |
| TristateTrue | –1 | 以 Unicode 格式打开文件。 |
| TristateFalse | 0 | 以 ASCII 格式打开文件。 |
下面的代码举例说明了使用 OpenTextFile 方法打开一个用于追加文本的文件:
Sub OpenTextFileTest
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Dim fs, f
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile("c:\estfile.txt", ForAppending,TristateFalse)
f.Write "Hello world!"
f.Close
End Sub下载本文