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 开始返回文件中当前行的行号 |

浙公网安备 33010602011771号