欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

VBS教程:对象-FileSystemObject 对象

程序员文章站 2022-03-21 11:32:19
filesystemobject 对象 提供对计算机文件系统的访问。 说明 以下代码举例说明如何使用 filesystemobject 对象返回一个 textstre...

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

好了,这篇文章就介绍这么多了,建议大家多看看相关的实例进行学习。