ASP中FSO组件的属性和方法(一) 有许多玩过ASP论坛的朋友大都听说过FSO组件吧,其实他的全称是FileSystemObject是ASP存取文件的一个组件,它的功能异常强大,它可删除、修改、生成硬盘上的文件、文件夹,直接编辑、修改、生成文本文件,其实它的功能远远不止这些,下面就让我们来介绍一下吧……
下面我们用一个ASP生成HTML文件的实例来介绍FSO…… Copy下面这段代码存成ASP文件,在可以支持FSO组件的服务器上运行,实现的主要效果是,运行后点击确定先在当前目录下生成一个GAMVAN.HTM文件,然后向这个HTM文件内添加自由定制内容! <% IF request.Form("action") = "生成文件" then Set fs = Server.CreateObject("Scripting.FileSystemObject")'建立对象 Set f = fs.CreateTextFile(Server.MapPath(".")&"\GAMVAN.htm",true)'新建文件指明文件如果存在该方法将覆盖存在的同名文件! end if if Request.Form("act") = "添加内容" then Set fs = Server.CreateObject("Scripting.FileSystemObject")'建立对象 txt = Request.Form("txt") Set f = fs.OpenTextFile(Server.MapPath(".")&"\GAMVAN.htm",8) f.Writeline(txt & " & nbsp; <br><br>by www.GAMVAN.com") Response.Write "<a href=javascript:history.go(-1)>添加内容成功啦!</a>" Response.End end if %> <form action="" method="post" name="action" id="action"> <input name="action" type="submit" id="action" value="生成文件"> </form> <hr size="1"> <form name="form1" method="post" action=""> <textarea name="txt" cols="50" rows="8" id="txt"></textarea> <input name="act" type="submit" id="act" value="添加内容"> </form> 其中Set f = fs.CreateTextFile(Server.MapPath(".")&"\GAMVAN.htm",true)一句代码中CreateTextFile就是FileSystem对象的其中一个属性,表示新建文件他后面是有参数的,CreateTextFile(FileName[,Overwrite[,Unicode]]) 其中中括号[]括起来的部分表示可选参数,它是有缺省值的,FileName表示新建文件的名字,OverWrite表示如果新建文件存在此方法是否覆盖已存在的文件,它的值为true或者false,缺省值为False表示不覆盖。Unicode的值也是true或者false,他的缺省值也是False表示创建的字符集为ASCII,否则创建的字符集则为Unicode。 在上面创建文件的程序中我们用到了一个函数:Server.MapPath其实这个就是把程序中的相对路径转化为服务器的实际路径,为什么要转化呢,因为FSO在打开、新建文件或文件夹的时候必须使用服务器的实际路径作为参数,而Server.MapPath(".")就是代表程序所在的目录。而如果是在当前目录的下一层目录则可以直接写成Server.MapPath("Foldername")。如果是在当前目录的上一层目录则是写成Server.MapPath("../Foldername")。其实联想起来那些靠ASP自动生成静态页面的新闻发布系统其基本原理就是这个!无非新闻发布系统的文件名是不同的、唯一的,就是上面的程序红色的部分就是文件名,这里我们可以给出一个提示你如果是在作一个新闻发布系统可以以当前的时间作为文件名,这样的话就绝对不会出现文件同名的现象情况了!
了解了CreateTextFile后你一定开始感慨ASP的FSO原来功能是如此地强大,,其实FileSystem还有一些列的属性方法,使用方法了上面的例子大同小异,这里我们就用罗列出来不再举例说明了: CopyFileSource,Destination[,Overwrite]其中中括号[]括起来的部分表示可选参数, 从Source向Destination拷贝一个或多个文件。在Source中指定的路径是可以包含通配符的,使用通配符可以一次拷贝多个文件。但是在使用通配符的情况下如果没有一个文件与之匹配,该方法就会发生错误。Overwrite的值为ture或者false,缺性时是true,表示覆盖已经存在的文件,反之……。但是这个方法不会覆盖那些具有只读属性的文件。 CreateFolder Foldername 新建文件夹,文件夹名为Foldername,如果文件夹已存在,则会在执行时产生错误。 DeleteFile Filespec[,Force] 删除一个或者多个文件,Filespec指名要删除的文件。Filespec可以包含通配符,Force表示是否强制删除具有只读属性的文件,值为ture、false,缺省时为false。 DeleteFolder Folderspec[,Force] 删除一个或多个文件夹。Folderspec表示要删除的文件夹,它也可以包含通配符,符合通配符条件的文件夹可以一次行删除。 DriveExists(Drivespec) 假如由Drivespec指名的驱动器存在,返回值为ture。否则的话返回值为false。 举例如: Dim fs, t Set fs = Server.CreateObject("Scripting.FileSystemObject") t = "c" if fs.DriveExists(t) then Response.Write "驱动器" & t & " 存在" else Response.Write "驱动器" & t & " 不存在!!!" end if FileExists(Filespec) 假如由FileSpec指明的文件夹存在,返回值为true;否则返回False。 FolderExists(Filespec) 假如由Filespec指明的文件加存在则返回TRUE,否则返回FALSE。 GetAbsolutePathName(Pathspec) 返回由Pathspec指名部分路径的完全文件路径。 GetBaseName(Path) 从一个由Path指名的全路径中返回文件名 (无扩展名) GetExtensinName(Path) 从一个由Path指名的全路径中返回文件的扩展名。 GetFile(Filespec) 返回代表Filespec的File对象。 GetFileName(Pathspec) 从一个由Pathspec指明的全路径中返回文件名和扩展名。 GetFolder(Folderspec) 返回代表Folderspec的Folder对象。 GetParentFolderName(Path) 返回由包含Path指明的文件或者文件夹的文件夹。
|