ASP入门(十四)-FileSystemObject 对象
File Access 组件中常见的对象有 FileSystemObject、TextStream、File、Folder、Drive等,其中每一个对象都有不同的属性和方法,我们将会在用到的时候进行详细介绍。
FileSystemObject 对象用于访问服务器上的文件系统。
此对象可对文件、文件夹和目录路径进行操作、获取文件系统信息。
直接上例子(FSO_TextFile.asp)了,首先我们检查是否存在“test.txt”文件,不存在则创建它,并写入一些文本,然后将该内容显示在表单中,经过修改后,再实现保存功能。
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> doctype html> <html> <head> <meta charset="utf-8"> <title>FileSystemObject 组件应用title> head> <body> <h3> <% Const sFileName = "/test.txt" Const ForReading = 1 '以只读方式打开文件 Const ForWriting = 2 '以写方式打开文件 Const ForAppending = 8'打开文件并从文件末尾开始写 Dim oFSO, oFile, sFileContent '读取和保存功能都在同一个页面,先判断是否是表单提交保存(POST) If UCase(Trim(Request.ServerVariables("REQUEST_METHOD"))) = "POST" Then '保存功能的实现 sFileContent = Request.Form("FileContent") Set oFSO = Server.CreateObject("Scripting.FileSystemObject") Set oFile = oFSO.OpenTextFile(Server.MapPath(sFileName), ForWriting) oFile.Write(sFileContent) oFile.Close Response.Write("test.txt 保存完毕,并读取") Else '创建FSO对象 Set oFSO = Server.CreateObject("Scripting.FileSystemObject") '判断 test.txt 是否存在,不存在则创建 test.txt 文件 If NOT oFSO.FileExists(Server.MapPath(sFileName)) Then Set oFile = oFSO.CreateTextFile(Server.MapPath(sFileName)) oFile.Write("test.txt 首次创建,请开始编辑吧") Response.Write("文件不存在,创建 test.txt,") oFile.Close Set oFile = Nothing End If Set oFile = oFSO.OpenTextFile(Server.MapPath(sFileName), ForReading) Response.Write("读取 test.txt 内容") '读取 test.txt 全部内容 sFileContent = oFile.ReadAll() oFile.Close End If 'POST 判断 %> h3> <form action="" method="POST"> <textarea rows="10" cols="50" name="FileContent"><%=sFileContent%>textarea> <input type="submit" value="保存"/> form> <% Set oFSO = Nothing Set oFile = Nothing %> body> html>
如果 test.txt 文件不存在的话,则首次运行,会创建该文件,创建文件时用到了 FSO 的 CreateTextFile 方法,该方法返回一个 TextStream 对象。
首次运行效果如下:
我们可以开始编辑,最后点击“保存”提交表单。
请注意
我们在使用完 oFile 和 oFSO 对象完毕后,都及时将它们关闭并清空,这样有助于节省服务器的系统资源。
FileSystemObject 其他方法
我们只是讲解了 FSO 最常用的功能之一,读取和写入文本文件的操作。FSO 具有对驱动器和文件夹两种文件系统对象访问的功能,这里我们只是罗列一下有需要的时候仅供参考。
FSO 对象与驱动器有关的方法如下表:
方法 | 说明 | ||||||||||||||||||||||||||||||||||||||||||||
DriveExists(drive) | 返回指定的驱动器是否存在的布尔值,drive 参数必须的,驱动器的字母或者文件、文件夹完整的绝对路径。 | ||||||||||||||||||||||||||||||||||||||||||||
GetDrive(drivespec) | 返回由 drivespec 参数规定的 Drive 对象,可以使驱动器字母(c),或者带冒号的驱动器字母(c:),或者带有冒号和路径分隔符的驱动器字母(C:\),或者任何网络共享规范(
FSO 对象与文件夹有关的方法如下表:
以上每个方法具体的示例已经在代码(FSO_Other.asp) 中,请自行下载测试吧,效果如下: FSO 对象与文件有关的方法如下表:
以上每个方法具体的示例已经在代码(FSO_Other.asp) 中,请自行下载测试吧,效果如下: 示例代码下载FSO.RAR |