fso对象模型
fso对象模型
(一)创建fso对象模型
由于fso对象包含在scripting 类型库 (scrrun.dll)中,所以在使用前首先需要在在工程中引用这个文件,单击“工程”,“引用”,然后在“引用”对话框中选中“microsoft scripting runtime”前的复选框,然后单击“确定”。
要创建fso对象可以采用两种方法,
一种是将一个变量
声明为fso对象类型: dim fsotest as new filesystemobject;
另一种是通过createobject方法创建一个fso 对象:set fsotest =createobject("scripting.filesystemobject")
(二)FSO的常见对象:
对象/集合 | 描述 |
drive | 包含储存设备的信息,包括硬盘、光驱、 ram 盘、网络驱动器 |
drives | 本地机器上所有可用drive对象的drives集合 |
file | 检查和处理文件 |
files | 提供包含在文件夹内的所有文件的列表 |
folder | 检查和处理文件夹 |
folders | 提供在 folder 内的所有文件夹的列表 |
textstream | 对象。用来读写文本文件。 |
(方法)
fso.createtextfile(strfile,blnoverwrite) | 创建一个空文件 |
fso.createfolder(strfolder) | 创建一个空的文件夹 |
fso.deletefile(strfile , force) | 删除一个文件 |
fso.deletefolder(strfolder , force) | 删除一个文件夹 |
fso.fileexists(strfile) | 判断指定文件是否存在 |
fso.folderexists(strfolder) | 判断指定文件夹是否存在 |
fso.copyfile(source,destination[,overwrite]) | 将一个或多个文件从某位置复制到另一位置 |
fso.copyfolder(source,destination[,overwrite]) | 将文件夹从某位置复制到另一位置 |
fso.movefile (source, destination) | 将一个或多个文件从某位置移动到另一位置 |
fso.movefolder (source, destination) | 将一个或多个文件夹从某位置移动到另一位置 |
fso.BuildPath(path, name) | 追加一个名字到一个已经存在的路径 |
fso.GetAbsolutePathName(pathspec) | 从提供的路径说明中返回一个完整、明确的路径(类似Dos命令) |
fso.GetDriveName(path) | 一个包含指定路径的驱动器名字的字符串 |
fso.GetDrive (drivespec) | 一个与指定路径中的驱动器相对应的 Drive 对象 |
fso.getBasename(path) | 一个包含路径中最后部件的基本名字(去掉任何文件扩展名)的字符串 |
fso.getExtensionName(path) | 获取文件后缀名 |
fso.GetFileName(pathspec) | 指定路径中的最后部件,该路径不是驱动器说明的一部分。 |
fso.GetFile(filespec) | 一个和指定路径中文件相对应的 File 对象。 |
fso.GetFolder(folderspec) | 一个和指定路径中文件夹相对应的 Folder 对象 |
fso.GetParentFolderName(path) | 一个包含指定路径最后部件父文件夹名字的字符串 |
fso.GetSpecialFolder(folderspec) | 特殊文件夹,常数WindowsFolder,SystemFolder,TemporaryFolder |
fso.GetTempName | 一随机产生的临时文件或文件夹名字,该名字在执行某些操作时有用。 |
fso.OpenTextFile(filename) | 打开一指定的文件,并返回一TextStream对象 |
(三)drive对象
方 法 | 说 明 |
driveexists(drivespec) | drivespec参数可以是一个驱动器字母,或者是文件、文件夹的完整绝对路径 |
getdrive(drivespec) | drivespec指定的驱动器所对应的drive对象。可包含冒号、路径分隔符或者是网络共享名 |
getdrivename(drivespec) | 用字符串返回drivespec指定的驱动器的名称。 drivespec参数必须是文件或文件夹的绝对路径,或驱动器字母 |
(常用属性)
totalsize 属性 | 驱动器的总容量,以字节为单位 |
availablespace或freespace 属性 | 驱动器的可用空间是多少,以字节为单位 |
driveletter 属性 | 哪个号被赋给了该驱动器 |
drivetype 属性 | 驱动器的类型是,如可移动的、固定的、网络的、 cd-rom 或 ram 磁盘 |
serialnumber 属性 | 驱动器的序列号 |
filesystem 属性 | 驱动器使用的文件系统类型,如 fat 、 fat32 、 ntfs 等等 |
isready 属性 | 驱动器是否可以使用 |
sharename 和 volumename 属性 | 共享和 / 或卷的名字 |
path 和 rootfolder 属性 | 驱动器的路径或根文件夹 |
(四)folder对象
(常用属性)
objfldr.files |
返回由指定文件夹中所有file对象(包括隐藏文件和系统文件)组成的files集合 |
objfldr.isrootfolder |
判断指定的文件夹是否是根文件夹,是返回true ;否则false |
objfldr.subfolders |
返回由指定文件夹中所有子文件夹组成的folders集合 |
attributes属性 | datecreated属性 |
datelastaccessed属性 | datelastmodified属性 |
drive属性 | name属性 |
parentfolder属性 | path 属性 |
shortname属性 | shortpath属性 |
size属性 | type属性 |
(常用方法)
fso对象folder | 有关文件夹的方法 ( 仅常用的方法 ) |
objfldr.createfolder | 创建一个文件夹 |
objfldr.deletefolder | 删除一个文件夹 |
objfldr.movefolder | 移动一个文件夹 |
objfldr.copyfolder | 复制一个文件夹 |
objfldr.folderexists | 查找一个文件夹是否在驱动器上 |
objfldr.getfolder | 获得已有folder对象的一个实例 |
objfldr.getparentfoldername | 找出一个文件夹的父文件夹的名称 |
objfldr.getspecialfolder | 找出系统文件夹的路径 |
folder对象的方法 | 用途 |
objfldr.delete | 创建一个文件夹 |
objfldr.move | 移动一个文件夹 |
objfldr.copy | 复制一个文件夹 |
objfldr.name | 检索文件夹的名称 |
在此需要强调一点,前面我们曾经提到过fso对象模型包含的方法是冗余的,所以folder对象的delete、move、copy方法和filesystemobject对象的deletefolder、movefolder、copyfolder方法实际上是相同的,因此在实际使用中可以任选其中的一种。
(五)file对象
objfile.copy(destination[,overwrite]) | 将指定的文件从某位置复制到另一位置。 |
objfile.delete force | 删除指定的文件 |
objfile.move(destination) | 将指定的文件从某位置移动到另一位置。 |
objfile.attributes [= newattributes] | 设置或返回文件的属性,可读写或只读(与属性有关) |
objfile.datecreated | 返回指定的文件或文件夹的创建日期和时间 |
objfile.datelastaccessed | 返回指定的文件或文件夹的上次访问日期和时间 |
objfile.datelastmodified | 返回指定的文件或文件夹的上次修改日期和时间 |
objfile.name [= newname] | 设置或返回指定的文件或文件夹的名称,可读写 |
objfile.parentfolder | 返回指定文件或文件夹的父文件夹 |
objfile.shortname | 返回按照早期 8.3 文件命名约定转换的短文件名 |
objfile.shortpath | 返回按照 8.3 命名约定转换的短路径名 |
objfile.size | 返回指定文件的字节数 |
objfile.type | 返回文件或文件夹的类型信息 |
copy 方法 | delete 方法 |
move 方法 | createtextfile 方法 |
(六)TextStream对象
是用于访问文本文件的对象,可以通过FileSystemObject
对象的CreateTextFile()及OpenTextFile(),来获取TextStream的对象句柄。
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objStream = objFso.CreateTextFile(strPath,True)
'使用CreateTextFile(),来返回一个TextStream对象句柄
Set objStream = objFso.OpenTextFile(strPath,1,true) '以只读的方式打开文件,如果文件不存在则创建它
TextStream对象的方法
方法 | 说明 |
Close() | 关闭一个打开的文件 |
Read(numchars) | 从文件中读出 numchars 个字符 |
ReadAll() | 作为单个字符串读出整个文件 |
ReadLine() | 作为一个字符串从文件中读出一行(直到回车符和换行) |
Skip(numchars) | 当从文件读出时忽略 numchars 个字符 |
SkipLine() | 当从文件读出时忽略下一行 |
Write(string) | 向文件写入字符串 string |
WriteLine(string) | 向文件写入字符串 string(可选)和换行符 |
WriteBlankLines(n) | 向文件写入 n 个换行符 |
TextStream对象的属性
属性 | 说明 |
AtEndOfLine | 如果文件位置指针在文件中一行的末尾则返回 True |
AtEndOfStream | 如果文件位置指针在文件的末尾则返回 True |
Column | 从 1 开始返回文件中当前字符的列号 |
Line | 从 1 开始返回文件中当前行的行号 |