zoukankan      html  css  js  c++  java
  • ASP入门(十四)-FileSystemObject 对象

    File Access 组件中常见的对象有 FileSystemObjectTextStreamFileFolderDrive等,其中每一个对象都有不同的属性和方法,我们将会在用到的时候进行详细介绍。

    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 对象。

    首次运行效果如下:

    20150816001

    我们可以开始编辑,最后点击“保存”提交表单。

    20150816002

    请注意

    我们在使用完 oFile 和 oFSO 对象完毕后,都及时将它们关闭并清空,这样有助于节省服务器的系统资源。


    FileSystemObject 其他方法

    我们只是讲解了 FSO 最常用的功能之一,读取和写入文本文件的操作。FSO 具有对驱动器和文件夹两种文件系统对象访问的功能,这里我们只是罗列一下有需要的时候仅供参考。

    FSO 对象与驱动器有关的方法如下表:

    方法 说明
    DriveExists(drive) 返回指定的驱动器是否存在的布尔值,drive 参数必须的,驱动器的字母或者文件、文件夹完整的绝对路径。
    GetDrive(drivespec) 返回由 drivespec 参数规定的 Drive 对象,可以使驱动器字母(c),或者带冒号的驱动器字母(c:),或者带有冒号和路径分隔符的驱动器字母(C:),或者任何网络共享规范(\machinesharename
    GetDriveName(path) 返回一个字符串,该值是指定路径的驱动器名称,必须是文件或文件夹的绝对路径,或者仅仅是驱动器名称(C或者 C:)

    以上每个方法具体的示例已经在代码(FSO_Other.asp) 中,请自行下载测试吧,效果如下:

    20150817001


    FSO 对象与文件夹有关的方法如下表:

    方法 说明
    CopyFolder source, destination[, overwrite] 从指定的源文件夹 source (可以包含通配符)中复制一个或多个文件夹到指定目标文件夹 destination,包含了源文件夹中的所有文件。
    如果 source 包含通配符或 destination 末尾是路径分隔符(””)那么认为 destination 就是要放置源文件夹的拷贝文件夹。
    overwirte 默认为 True
    CreateFolder(name) 创建一个 name 文件夹,如果 name 已经存在将产生错误
    DeleteFolder(foldername[, force]) 删除一个或多个指定的文件夹,如果您视图删除不存在的文件夹将会引发错误。foldername 参数支持通配符,force 布尔参数可选,是否删除只读文件夹,True 为删除,默认值为 False
    FolderExists(foldername) 返回指定文件夹是否存在的布尔值
    GetAbsolutePathName(path) 为指定路径返回从根驱动器开始的完整路径。例如当前路径是 F:JJFSO,而 path 参数传递的是 Folder ,则返回的完整路径是 F:JJFSOFolder
    GetFolder(path) 返回指定路径的 Folder 对象。
    GetParentFolderName(path) 返回指定路径中最后成分的父文件夹的名称。path 参数需要其 父文件夹名称的文件或文件夹路径。不检测该文件夹是否存在
    GetSpecialFolder(foldername) 返回一个特定的 Windows 文件夹对应的 Folder 对象,参数 foldername 可以是
    0=WindowsFolder
    1=SystemFolder
    2=TemporaryFolder
    MoveFolder source, destination 将 source 指定的一个或多个文件夹移动到 destination 指定的文件夹。在 source 中可以包含通配符,但在 destination 中不行。如果 destination 已经存在则产生错误

    以上每个方法具体的示例已经在代码(FSO_Other.asp) 中,请自行下载测试吧,效果如下:

    20150817002

    FSO 对象与文件有关的方法如下表:

    方法 说明
    CopyFile source, destination[, overwrite] 从一个位置向另一个位置拷贝一个或多个文件,source 参数可以使用通配符,destination 参数不可以使用通配符,overwrite 参数默认为 True(覆盖)
    CreateTextFile(filename[, overwrite[, unicode]]) 在当前文件中创建新的文本文件,并返回可以读或写的 TextStream 对象,overwrite 参数默认为 True, unicode 参数默认为 False(创建ASCII文件)
    DeleteFile(filename[, force]) 删除一个或多个指定的文件,如果您视图删除的文件不存在,会引发错误
    FileExists(filename) 返回指定的文件是否存在的布尔值,如果存在返回 True
    GetBaseName(path) 返回指定路径中的文件或文件夹的基准名称
    GetExtensionName(path) 返回包含指定路径中最后成分的文件扩展名的字符串
    GetFile(path) 返回指定路径的 File 对象。
    GetFileName(path) 返回指定路径中最后成分的文件名或文件夹名的字符串
    GetTempName 无参数,返回一个随机产生的临时文件或文件夹
    MoveFile source, destination 把一个或多个文件从一个位置移动到另一个位置,source 参数可以包含通配符,destination 参数不可以包含通配符
    OpenTextFile(fname, mode[, create[, format]]) 打开指定文件,并返回 TextStream 对象,fname 参数是要打开的文件名称,mode 参数可选1、2、8

    以上每个方法具体的示例已经在代码(FSO_Other.asp) 中,请自行下载测试吧,效果如下:

    20150817003

    示例代码下载

    FSO.RAR

  • 相关阅读:
    课程笔记:——Javascript 中的预解释1
    我的博客园开通了~
    scheduling algorithm
    jQuery实现全选,全不选,反选
    jQuery实现表格选中行变色
    程序员永远的鸡血
    大家好,欢迎来到我的博客,我们一起成长,见证奇迹!
    存储过程和触发器优缺点分析
    ECStore去掉Index.php的方法
    C# 编码与解码
  • 原文地址:https://www.cnblogs.com/pchmonster/p/4737341.html
Copyright © 2011-2022 走看看