VBS教程:对象-FileSystemObject 对象
filesystemobject 对象
提供对计算机文件系统的访问。
说明
以下代码举例说明如何使用 filesystemobject 对象返回一个 textstream 对象,此对象可以被读取或写入:
dim fso, myfile set fso = createobject("scripting.filesystemobject") set myfile = fso.createtextfile("c:\testfile.txt", true) myfile.writeline("this is a test.") myfile.close
以前代码中,createobject 函数返回 filesystemobject 对象 (fso)。createtextfile 方法创建一个文件作为 textstream 对象 (a),然后 writeline 方法在此文件中写入一行文本。最后 close 方法刷新缓冲区并关闭文件。
以下是对filesystemobject 对象的详细解释
文件系统是所有操作系统最重要的部分之一,脚本经常会需要对文件及文件夹进行访问和管理,在vbs中对桌面和文件系统进行访问的*对象是filesystemobject(fso),这个对象特别复杂,是vbs进行文件操作的核心。
fso包含的常见对象有:
对象/集合 |
描述 |
drive |
包含储存设备的信息,包括硬盘、光驱、ram盘、网络驱动器 |
drives |
提供一个物理和逻辑驱动器的列表 |
file |
检查和处理文件 |
files |
提供包含在文件夹内的所有文件的列表 |
folder |
检查和处理文件夹 |
folders |
提供在 folder 内的所有文件夹的列表 |
textstream |
对象。用来读写文本文件。 |
如何使用fso
要用fso对象模型来编程,使用createobject方法来创建filesystemobject对象,例如:
dim fso
set fso = wscript.createobject("scripting.filesystemobject")
在这个示例中,scripting 是类型库的名字,而 filesystemobject 则是想要创建的对象的名字。至此我们获取了fso对象,接下来就可以使用fso对象了。如果要释放的话也很简单,例如:
set fso = nothing
filesystemobject对象总共一个属性即drives
描述:获得所有可用驱动器的集合。
说明:无论是否本地磁盘、插入媒体、可移动媒体驱动器都显示在 drives 集合中。
具体示例代码如下所示:获取本计算机上所有的磁盘的盘符
set fso = createobject("scripting.filesystemobject")
set drivers = fso.drives
for each driver in drivers
msgbox driver.driveletter '输出计算机上所有的磁盘盘符
next
方法:(仅常用的方法)
createfile
描述:创建一个空文件
语法:object. createtextfile(strfile,blnoverwrite)
参数:strfile为文件名称
blnoverwrite为ture强制覆盖,为false不覆盖
示例:创建文件c:\test.txt
dim fso '创建filesystemobject对象 set fso = createobject("scripting.filesystemobject") '使用createtextfile创建文件,不覆盖存在的文件 fso.createtextfile "c:\test.txt",false '覆盖存在的文件 fso.createtextfile "c:\test.txt",true
createfolder
描述:创建一个空的文件夹
语法:object. createfolder(strfolder)
参数:strfolder为想要创建的文件夹名称
示例:创建文件夹: c:\test
dim fso '创建filesystemobject对象 set fso = createobject("scripting.filesystemobject") '使用myfolder创建文件夹 fso.createfolder("c:\test")
deletefile
描述:删除一个文件
语法:object. deletefile (strfile,force)
参数:strfile为想要删除的文件。组成部分中可用通配符。
force如果要删除只读文件,则该值为 true;否则为 false(默认)
示例:删除文件: c:\test.txt
dim fso '创建filesystemobject对象 set fso = createobject("scripting.filesystemobject") '使用deletefile删除指定文件 fso.deletefile("c:\test.txt") '强制删除只读的文件 fso.deletefile "c:\test.txt",true
deletefolder
描述:删除一个文件夹
语法:object. deletefolder(strfolder,force)
参数:strfolder为想要删除的文件夹名称。组成部分中可用通配符。
force如果要删除只读文件夹,则该值为 true;否则为 false(默认)
示例:删除文件夹: c:\test
dim fso '创建filesystemobject对象 set fso = createobject("scripting.filesystemobject") '使用deletefile删除指定文件 fso.deletefolder("c:\test") '强制删除只读的文件 fso.deletefolder "c:\test",true
fileexists
描述:判断指定文件是否存在,如果不判断直接修改,代码出现错误,导致代码无法运行或一些状况出现,可以提高你写代码的严谨性
语法:object. fileexists (strfile)
参数:strfile为指定的文件
示例:检查文件: c:\test.txt是否存在
dim fso '创建filesystemobject对象 set fso = createobject("scripting.filesystemobject") '使用fileexists判断指定文件是否存在 msgbox fso.fileexists("c:\test.txt")
folderexist
描述:判断指定文件夹是否存在
语法:object. folderexists (strfolder)
参数:strfolder为指定的文件夹
示例:检查文件夹: c:\test是否存在
dim fso '创建filesystemobject对象 set fso = createobject("scripting.filesystemobject") '使用folderexists判断指定文件夹是否存在 msgbox fso.folderexists("c:\test")
copyfile
描述:将一个或多个文件从某位置复制到另一位置
语法:object.copyfile "source", "destination"[, overwrite]
参数:source必选项。表示指定文件的路径。组成部分中可用通配符。
destination必选项。表示目标位置路径
overwrite可选项。boolean 值表明是否覆盖现有文件。如果是 true,则覆盖文件;如果是 false,则不覆盖现有文件。默认值是 true
示例:将 c:\test.txt文件复制到d:\下
dim fso '创建filesystemobject对象 set fso = createobject("scripting.filesystemobject") '使用copyfile复制文件到另一个位置,false不覆盖已存在文件 fso.copyfile "c:\test.txt","d:\",false 'true覆盖已存在文件 fso.copyfile "c:\test.txt","d:\",true
示例:将 c:\下所有的txt文件复制到d:\下
dim fso '创建filesystemobject对象 set fso = createobject("scripting.filesystemobject") '使用*.txt,可以同时将多个文件复制到另一个位置,false不覆盖已存在文件 fso.copyfile "c:\*.txt","d:\",false 'true表示覆盖已存在文件 fso.copyfile "c:\*.txt","d:\",true
copyfolder
描述:将文件夹从某位置复制到另一位置
语法:object. copyfolder "source", "destination"[, overwrite]
参数:source必选项。表示指定文件夹的路径。组成部分中可用通配符。
destination必选项。表示目标位置的路径
overwrite可选项。boolean 值表明是否覆盖现有文件夹。如果是 true,则覆盖文件夹;如果是 false,则不覆盖现有文件夹。默认值是 true
示例:将 c:\test文件夹复制到d:\下
dim fso '创建filesystemobject对象 set fso = createobject("scripting.filesystemobject") '使用copyfile复制文件到另一个位置,默认为true覆盖已存在文件 fso.copyfolder "c:\test","d:\" 'false不覆盖已存在文件 fso.copyfolder "c:\test","d:\",false
movefile
描述:将一个或多个文件从某位置移动到另一位置
语法:object.movefile source, destination
参数:source必选项。要移动的文件的路径。组成部分中可用通配符。
destination必选项。指定路径,表示要将文件移动到该目标位置。destination 参数不能包含通配符。
示例:将 c:\test文件夹移动到d:\下
dim fso '创建filesystemobject对象 set fso = createobject("scripting.filesystemobject") '使用movefile移动文件到另一个位置 fso.movefile "c:\test.txt","d:\"
movefolder
描述:将一个或多个文件夹从某位置移动到另一位置
语法:object.movefolder source, destination
参数:source必选项。要移动的文件夹的路径。组成部分中可用通配符。
destination必选项。指定路径,表示要将文件夹移动到该目标位置。
示例:
dim fso '创建filesystemobject对象 set fso = createobject("scripting.filesystemobject") '使用movefolder移动文件夹到另一个位置 fso.movefolder "c:\test","d:\"
getextensionname
描述:获取文件后缀名
语法:object.movefolder source, destination
参数:source必选项。要移动的文件夹的路径。组成部分中可用通配符。
destination必选项。指定路径,表示要将文件夹移动到该目标位置。
示例:获取”c:\test.txt”文件后缀名
dim fso dim getextensionname '创建filesystemobject对象 set fso = createobject("scripting.filesystemobject") '使用getextensionname获取文件后缀名 getextensionname = fso.getextensionname("c:\test.txt") msgbox getextensionname '输出txt
getbasename
描述:获取文件当前所在文件夹
语法:object.getbasename path
参数:path必选项。文件路径名。
示例:获取”c:\test.txt”文件名称
dim fso dim getbasename '创建filesystemobject对象 set fso = createobject("scripting.filesystemobject") '使用getbasename获取文件的文件名称 getbasename = fso.getbasename("c:\test\test.txt") msgbox getbasename '输出test
getparentfoldername
描述:将一个或多个文件夹从某位置移动到另一位置
语法:object.getparentfoldername path
参数:path必选项。文件路径名。
示例:获取”c:\test.txt”文件所在的文件夹
dim fso dim getparentfoldername '创建filesystemobject对象 set fso = createobject("scripting.filesystemobject") '使用getparentfoldername获取文件当前所在的文件夹 getparentfoldername = fso.getparentfoldername("c:\test\test.txt") msgbox getparentfoldername '输出c:\test
好了,这篇文章就介绍这么多了,建议大家多看看相关的实例进行学习。
上一篇: VBS教程:对象-Files 集合
下一篇: VBS教程:对象-Drives 集合