FileSystemObject对象位于FileSystem对象模型的最高层,并且是该层次中惟一可以在外部创建的对象,也就是说它是惟一能使用New关键字的对象。FileSystemObject对象有许多用来操作文件系统的方法和属性。下面先看一个例子,如下面的代码:SubFileInfo()DimfsAsObjectDimobjFileAsObjectDimstrMsgAsStringSetfs=CreateObject(Scripting.FileSystemObject)SetobjFile=fs.GetFile(C:\Windows\System.ini)strMsg=文件名:&objFile.Name&vbCrLfstrMsg=strMsg&硬盘:&objFile.Drive&vbCrLfstrMsg=strMsg&创建日期:&objFile.DateCreated&vbCrLfstrMsg=strMsg&修改日期:&objFile.DateLastModified&vbCrLfMsgBoxstrMsg,,文件信息EndSubFileInfo过程首先使用CreateObject函数创建一个FileSystemObject对象,用来访问计算机的文件系统。然后,使用GetFile方法创建一个File对象并返回对System.ini文件的引用。接着,利用File对象的Name属性、Drive属性、DateCreated属性、DateLastModified属性返回文件的相应信息。下面详细介绍FileSystemObject对象的方法和属性。BuildPath方法其语法为:oFileSysObj.BuildPath(Path,Name)其中,oFileSysObj为任何能够返回FileSystemObject对象的对象变量。参数Path必需,指定驱动器或文件夹路径,String类型,可以是绝对路径也可以是相对路径,不一定要包含驱动器名。参数Name必需,指定附加在Path后的文件夹或文件路径,String类型。参数Path或Name都不一定要求是当前已经存在的路径或文件夹。BuildPath方法通过合并参数Path和文件夹或文件名生成一个字符串,并且在必要的地方加上正确的主机系统路径分隔符。该方法不能检验新的文件夹或文件名的有效性。与人工合并两个字符串相比,使用BuildPath函数的惟一好处就是它能够选择正确的路径分隔符。FileExists方法FileExists方法用于判断指定的文件是否存在,若存在则返回True。其语法为:oFileSysObj.FileExists(FileSpec)其中,oFileSysObj代表任何能够返回FileSystemObject对象的对象。参数FileSpec必需,代表文件的完整路径,String类型,不能包含有通配符。如果用户有充分的权限,FileSpec可以是网络路径或共享名,例如:Ifofs.FileExists(\\TestPath\Test.txt)Then示例SubIfFileExists()DimfsAsObjectDimstrFileAsStringSetfs=CreateObject(Scripting.FileSystemObject)strFile=InputBox(请输入文件的完整名称:)Iffs.FileExists(strFile)ThenMsgBoxstrFile&已经找到.ElseMsgBox该文件不存在.EndIfEndSubGetFile方法GetFile方法用来返回一个File对象。其语法为:oFileSysObj.GetFile(FilePath)其中,oFileSysObj代表任何能够返回FileSystemObject对象的对象变量。参数FilePath必需,指定路径和文件名,String类型。可以是绝对路径或相对路径。如果FilePath是一个共享名或网络路径,GetFile确认该驱动器或共享是File对象创建进程的一部分。如果参数FilePath指定的路径的任何部分不能连接或不存在,就会产生错误。GetFile方法返回的是File对象,而不是TextStream对象。File对象不是打开的文件,主要是用来完成如复制或移动文件和询问文件的属性之类的方法。尽管不能对File对象进行写或读操作,但可以使用File对象的OpenAsTextStream方法获得TextStream对象。要获得所需的FilePath字符串,首先应该使用GetAbsolutePathName方法。如果FilePath包含网络驱动器或共享,可以在调用GetFile方法之前用DriveExists方法来检验所需的驱动器是否可用。因为在FilePath指定的文件不存在时会产生错误,所以应该在调用GetFile之前调用FileExists方法确定文件是否存在。必须用Set语句将File对象赋给一个局部对象变量。GetFileName方法GetFileName方法返回给定路径的文件名称部分。其语法为:oFileSysObj.GetFileName(Path)其中,oFileSysObj表示任何能够返回FileSystemObject对象的对象变量。参数Path必需,指定路径说明,String类型。如果不能从给定的Path确定文件名,则返回一个零长字符串(”)。Path可以为绝对路径或相对路径。GetFileName方法不能检验Path中是否存在指定的文件。Path可以为网络驱动器或共享。GetFileName本身不具有智能,它认为字符串中不属于驱动器说明的最后部分就是一个文件名,更像是一个字符串处理函数而不是对象处理方法。GetFileVersion方法GetFileVersion方法返回文件的版本。CopyFile方法CopyFile方法用来复制文件,将文件从一个文件夹复制到另一个文件夹。其语法为:oFileSysObj.CopyFileSource,Destination[,OverwriteFiles]其中,oFileSysObj代表任何能够返回FileSystemObject对象的对象变量。参数Source必需,指定要复制的文件的路径和名称,String类型。参数Destination必需,代表复制文件的目标路径和文件名(可选),String类型。参数OverwriteFiles可选,表示是否覆盖一个现有文件的标志,True表示覆盖,False表示不覆盖,Boolean类型,默认值为True。参数source中源路径可以是绝对路径或相对路径,源文件名可包含通配符但源路径不能。在参数Destination中不能包含通配符。如果目标路径或文件设置为只读,则无论OverwriteFiles参数的值如何,都将无法完成CopyFile方法。如果参数OverwriteFiles设置为False且Destination指定的文件已经存在,则会产生一个运行时错误“文件已经存在”。如果在复制多个文件时出现错误,CopyFile方法将立即停止复制操作,该方法不具有撤销错误前文件复制操作的返回功能。如果用户有充分的权限,那么source或destination可以是网络路径或共享名,例如:CopyFile\\NTSERV1\RootTest\test.txt,C:\RootOneCopyFile方法可以复制一个保存在特定文件夹中的文件。如果文件夹本身有包含文件的子文件夹,则使用CopyFile方法不能复制这些文件,应该使用CopyFolder方法。例如:SubCopyFile()DimfsAsObjectDimstrFileAsStringDimstrNewFileAsStringstrFile=C:\test.docstrNewFile=C:\ProgramFiles\test.docSetfs=CreateObject(Scripting.FileSystemObject)fs.CopyFilestrFile,strNewFileMsgBox已经创建了指定文件的副本.Setfs=NothingEndSubCreateTextFile方法CreateTextFile方法创建一个新的文件并返回其TextStream对象,其语法为:oFileSysObj.CreateTextFileFilename[,Overwrite[,Unicode]]其中,oFileSysObj代表任何能够返回FileSystemObject对象的对象变量。参数Filename必需,代表任何有效文件名,String类型。在Filename中不允许使用通配符。Filename可以是相对路径也可以是绝对路径,如果没有指定路径,则使用应用程序的当前驱动器或文件夹作为路径。如果指定的路径不存在,则该方法将失败。参数Overwrite可选,作为一个标志,指定是否覆盖一个具有相同文件名的现有文件,Boolean类型。默认值为False。参数Unicode可选,作为一个标志,指明用Unicode格式还是ASCⅡ格式写文件,Boolean类型。如果设置为True,则以Unicode格式创建文件,否则创建一个ASCⅡ文本文件。默认值为False。只有写操作才能使新创建的文本文件自动打开,如果以后希望读取该文件,则必须选关闭它再以读模式重新打开该文件。如果参数Filename中指定的路径设置为只读,则不论参数Overwrite的值如保,CreateTextFile方法都将失败。如果用户有充分的权限,那么参数Filename可以是网络路径或共享名,例如:CreateTextFile\\NTSERV1\RootTest\myFile.doc必须使用Set语句将TextStream对象赋值给局部对象变量。MoveFile方法MoveFile方法用来移动文件,将文件从一个文件夹移动到另一个文件夹。其语法为:oFileSysObj.MoveFilesource,destination其中,oFileSysObj代表任何能够返回FileSystemObject对象的对象变量。参数source必需,指定要移动的文件的路径,String类型。参数destination必需,指定文件移动操作中的目标位置的路径,String类型。如果Source包含通配符或者destination以路径分隔符结尾,则认为destination是一个路径,否则认为destination的最后一部分是文件名。如果目标文件已经存在,则将出现一个错误。source可以包含通配符,但只能出现在它的最后一部分中。destination参数不能包含通配符。source或destination可以是相对路径或绝对路径,可以是网络路径或共享名。MoveFile方法在开始操作前先解析source和destination这两个参数。DeleteFile方法DeleteFile方法删除指定的一个或多个文件。其语法为:oFileSysObj.DeleteFileFileSpec[,Force]其中,oFileSysObj代表任何能够返回FileSystemObject对象的对象变量。参数FileSpec必需,代表要删除的单个文件或多个文件的名称和路径,String类型,可以在路径的最后部分包含通配符,可以为相对路径或绝对路径。如果在FileSpec中只有文件名,则认为该文件在应用程序的当前驱动器和文件夹中。参数Force可选,如果将其设置为True,则忽略文件的只读标志并删除该文件,Boolean类型,默认值为False。如果指定要删除的文件已经打开,该方法将失败并出现一个“PermissionDenied”错误。如果找不到指定的文件,则该方法失败。如果在删除多个文件的过程中出现错误,DeleteFile方法将立即停止删除操作,即不能删除余下的文件部分。该方法不具有撤销产生错误前文件删除操作的返回功能。如果用户有充分的权限,源路径或目标路径可以是网络路径或共享名。例如:DeleteFi