当前位置:

首页 > 编程开发 > VB FileSystemObject对象实例详解

VB FileSystemObject对象实例详解

FileSystemObject是ASP开发中操作服务器文件系统的核心对象,提供Drives属性及二十多种方法,可创建、读取、修改、删除文件和文件夹,并支持驱动器、路径处理及文件对象属性与方法的调用,功能全面且易于使用。

本文目录

    FileSystemObject 是 ASP 开发中绕不开的一个核心对象,它为我们提供了直接操作服务器文件系统的能力。简单来说,你可以在网页后台轻松地创建、读取、修改和删除文件与文件夹,甚至可以处理驱动器和目录路径。下面这段代码演示了如何创建一个文本文件并写入内容,这是最基础的用法:

    VB FileSystemObject对象实例详解
    <%
    dim fs,fname
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    set fname=fs.CreateTextFile("c:test.txt",true)
    fname.WriteLine("Hello World!")
    fname.Close
    set fname=nothing
    set fs=nothing
    %>

    搞懂这个对象,关键在于掌握它的两个组成部分:属性和方法。下面我们逐一拆解。

    一、属性

    Drives:返回计算机上所有 Drive 对象的集合。语法很简单:

    [drivecoll=]FileSystemObject.Drives

    二、方法

    FileSystemObject 提供了二十多个方法,覆盖了文件、文件夹、路径和驱动器的常规操作。先快速浏览一下完整清单:

    • Bulidpath、CopyFile、CopyFolder、CreateFolder、CreateTextFile、DeleteFile、DeleteFolder
    • DriveExists、FileExists、FolderExists、GetAbsolutePathName、GetBaseName
    • GetDrive、GetDriveName、GetExtensionName、GetFile、GetFileName
    • GetFolder、GetParentFolderName、GetSpecialFolder、GetTempName
    • MoveFile、MoveFolder、OpenTextFile

    接下来对每个方法做详细说明,附带语法和实际代码示例。

    BuildPath 方法

    给已有路径追加一个名字,相当于路径拼接。

    一、语法

    [newpath=]FileSystemObject.BuildPath(path,name)

    参数:path 是现有路径,name 是要追加的名称。

    二、例子

    <%
    dim fs,path
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    path=fs.BuildPath("c:mydocuments","test")
    response.write(path)
    set fs=nothing
    %>

    输出:c:mydocumentstest

    CopyFile 方法

    将文件从一个位置复制到另一个位置,支持通配符。

    一、语法

    FileSystemObject.CopyFile source,destination[,overwrite]

    source 指定要复制的文件,destination 指定目标路径,overwrite 为布尔值(默认 True)表示是否覆盖已有文件。

    二、例子

    <%
    dim fs
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    fs.CopyFile "c:mydocumentsweb*.htm","c:webpages"
    set fs=nothing
    %>

    CopyFolder 方法

    复制文件夹,用法与 CopyFile 类似。

    一、语法

    FileSystemObject.CopyFolder source,destination[,overwrite]

    二、例子

    '复制所有文件夹
    <%
    dim fs
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    fs.CopyFolder "c:mydocumentsweb*","c:webpages"
    set fs=nothing
    %>
    
    '只复制 test 子文件夹
    <%
    dim fs
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    fs.CopyFolder "c:mydocumentswebtest","c:webpages"
    set fs=nothing
    %>

    CreateFolder 方法

    创建一个新文件夹。

    一、语法

    FileSystemObject.CreateFolder(name)

    二、例子

    <%
    dim fs,f
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    set f=fs.CreateFolder("c:asp")
    set f=nothing
    set fs=nothing
    %>

    CreateTextFile 方法

    创建一个文本文件并返回 TextStream 对象供后续读写。这个方法可以从 FileSystemObject 调用,也可以从 Folder 对象调用。

    一、语法

    FileSystemObject.CreateTextFile(filename[,overwrite[,unicode]])
    FolderObject.CreateTextFile(filename[,overwrite[,unicode]])

    overwrite 默认为 True,unicode 默认为 False(ASCII)。

    二、例子

    从 FileSystemObject 创建:

    <%
    dim fs,tfile
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    set tfile=fs.CreateTextFile("c:somefile.txt")
    tfile.WriteLine("Hello World!")
    tfile.close
    set tfile=nothing
    set fs=nothing
    %>

    从 Folder 对象创建:

    <%
    dim fs,fo,tfile
    Set fs=Server.CreateObject("Scripting.FileSystemObject")
    Set fo=fs.GetFolder("c:test")
    Set tfile=fo.CreateTextFile("test.txt",false)
    tfile.WriteLine("Hello World!")
    tfile.Close
    set tfile=nothing
    set fo=nothing
    set fs=nothing
    %>

    DeleteFile 方法

    删除一个或多个指定文件。注意:如果文件不存在会报错。

    一、语法

    FileSystemObject.DeleteFile(filename[,force])

    force 为 True 时可删除只读文件。

    二、例子

    <%
    dim fs
    Set fs=Server.CreateObject("Scripting.FileSystemObject")
    fs.CreateTextFile("c:test.txt",True)
    if fs.FileExists("c:test.txt") then
      fs.DeleteFile("c:test.txt")
    end if
    set fs=nothing
    %>

    DeleteFolder 方法

    删除一个或多个文件夹。同样,不存在的文件夹会报错。

    一、语法

    FileSystemObject.DeleteFolder(foldername[,force])

    二、例子

    <%
    dim fs
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    if fs.FolderExists("c:temp") then
      fs.DeleteFolder("c:temp")
    end if
    set fs=nothing
    %>

    DriveExists 方法

    检查指定驱动器是否存在,返回布尔值。

    一、语法

    FileSystemObject.DriveExists(drive)

    二、例子

    <%
    dim fs
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    if fs.DriveExists("c:")=true then
      response.write("Drive c: exists!")
    else
      response.write("Drive c: does not exist.")
    end If
    set fs=nothing
    %>

    FileExists 方法

    检查指定文件是否存在。

    一、语法

    FileSystemObject.FileExists(filename)

    二、例子

    <%
    dim fs
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    if fs.FileExists("c:aspintroduction.asp")=true then
      response.write("File c:aspintroduction.asp exists!")
    else
      response.write("File c:aspintroduction.asp does not exist!")
    end if
    set fs=nothing
    %>

    FolderExists 方法

    检查文件夹是否存在。

    一、语法

    FileSystemObject.FolderExists(foldername)

    二、例子

    <%
    dim fs
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    if fs.FolderExists("c:asp")=true then
      response.write("Folder c:asp exists!")
    else
      response.write("Folder c:asp does not exist!")
    end if
    set fs=nothing
    %>

    GetAbsolutePathName 方法

    将相对路径转换为绝对路径。

    一、语法

    FileSystemObject.GetAbsolutePathName(path)

    二、例子

    假设当前目录为 c:temptest:

    '例1
    <%
    dim fs,path
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    path=fs.GetAbsolutePathName("c:")
    response.write(path)
    %>
    输出: c:temptest
    
    '例2
    <%
    dim fs,path
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    path=fs.GetAbsolutePathName("mydoc.txt")
    response.write(path)
    %>
    输出: c:temptestmydoc.txt
    
    '例3
    <%
    dim fs,path
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    path=fs.GetAbsolutePathName("privatemydoc.txt")
    response.write(path)
    %>
    输出: c:temptestprivatemydoc.txt

    GetBaseName 方法

    返回文件或文件夹的基本名称(不带扩展名和路径)。

    一、语法

    FileSystemObject.GetBaseName(path)

    二、例子

    <%
    dim fs
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    Response.Write(fs.GetBaseName("c:winntcursors3dgarro.cur"))
    set fs=nothing
    %>
    输出: 3dgarro

    GetDrive 方法

    返回指定驱动器对应的 Drive 对象。

    一、语法

    FileSystemObject.GetDrive(drivespec)

    drivespec 可以是 c、c:、c:\ 或网络共享路径。

    二、例子

    <%
    dim fs,d
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    set d=fs.GetDrive("c:")
    set fs=nothing
    %>

    GetDriveName 方法

    返回路径中的驱动器名(如 c:)。

    一、语法

    FileSystemObject.GetDriveName(path)

    二、例子

    <%
    dim fs,dname
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    dname=fs.GetDriveName("c:testtest.htm")
    Response.Write(dname)
    set fs=nothing
    %>
    输出: c:

    GetExtensionName 方法

    获取文件扩展名。

    一、语法

    FileSystemObject.GetExtensionName(path)

    二、例子

    <%
    dim fs
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    Response.Write(fs.GetExtensionName("c:testtest.htm"))
    set fs=nothing
    %>
    输出: htm

    GetFile 方法

    返回指定路径对应的 File 对象,从而可以读取文件属性(如最后修改时间)。

    一、语法

    FileSystemObject.GetFile(path)

    二、例子

    <%
    dim fs,f
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    set f=fs.GetFile("c:testtest.htm")
    Response.Write("The file was last modified on: ")
    Response.Write(f.DateLastModified)
    set f=nothing
    set fs=nothing
    %>
    输出: The file was last modified on 01/01/20 4:23:56 AM

    GetFileName 方法

    返回路径中最后部分的文件名或文件夹名。

    一、语法

    FileSystemObject.GetFileName(path)

    二、例子

    '返回文件名
    <%
    dim fs,p
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    p=fs.getfilename("c:testtest.htm")
    response.write(p)
    set fs=nothing
    %>
    输出: test.htm
    
    '返回文件夹名
    <%
    dim fs,p
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    p=fs.getfilename("c:test")
    response.write(p)
    set fs=nothing
    %>
    输出: test

    GetFolder 方法

    返回指定路径的 Folder 对象,可获取文件夹属性。

    一、语法

    FileSystemObject.GetFolder(path)

    二、例子

    <%
    dim fs,f
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    set f=fs.GetFolder("c:test")
    Response.Write("The folder was last modified on: ")
    Response.Write(f.DateLastModified)
    set f=nothing
    set fs=nothing
    %>
    输出: The folder was last modified on 01/01/20 4:23:56 AM

    GetParentFolderName 方法

    返回路径中最后部分的父文件夹路径。

    一、语法

    FileSystemObject.GetParentFolderName(path)

    二、例子

    <%
    dim fs,p
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    p=fs.GetParentFolderName("c:winntcursors3dgarro.cur")
    Response.Write(p)
    set fs=nothing
    %>
    输出: c:winntcursors

    GetSpecialFolder 方法

    返回 Windows 系统特殊文件夹的路径,比如 Windows 目录、System 目录和临时文件夹。

    一、语法

    FileSystemObject.GetSpecialFolder(foldername)

    foldername取值:0=WindowsFolder,1=SystemFolder,2=TemporaryFolder。

    二、例子

    <%
    dim fs,p
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    set p=fs.GetSpecialFolder(1)
    Response.Write(p)
    set p=nothing
    set fs=nothing
    %>
    输出: C:WINNTsystem32

    GetTempName 方法

    生成一个随机的临时文件名或文件夹名。

    一、语法

    FileSystemObject.GetTempName

    二、例子

    <%
    dim fs,tfolder,tname,tfile
    Set fs=Server.CreateObject("Scripting.FileSystemObject")
    Set tfolder=fs.GetSpecialFolder(2)
    tname=fs.GetTempName
    Set tfile=tfolder.CreateTextFile(tname)
    Response.write(tfile)
    %>
    输出: trb2007.tmp

    MoveFile 方法

    移动一个或多个文件。

    一、语法

    FileSystemObject.MoveFile source,destination

    二、例子

    <%
    dim fs
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    fs.MoveFile "c:web*.gif","c:images"
    set fs=nothing
    %>

    MoveFolder 方法

    移动一个或多个文件夹。

    一、语法

    FileSystemObject.MoveFolder source,destination

    二、例子

    <%
    dim fs
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    fs.MoveFolder "c:testweb","c:windows"
    set fs=nothing
    %>

    OpenTextFile 方法

    打开一个文件并返回 TextStream 对象,可进行读写或追加操作。

    一、语法

    FileSystemObject.OpenTextFile(fname,mode,create,format)

    参数说明:mode 为 1(只读)、2(写入)、8(追加);create 布尔值表示是否创建不存在的文件;format 指定文件格式(0=ASCII,-1=Unicode,-2=系统默认)。

    二、例子

    <%
    dim fs,f
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    set f=fs.OpenTextFile(Server.MapPath("testread.txt"),8,true)
    f.WriteLine("This text will be added to the end of file")
    f.Close
    set f=Nothing
    set fs=Nothing
    %>

    Property(文件对象的属性)

    每个文件(File 对象)都有一系列属性,可以用来获取或设置文件元数据。下表整理了常用属性:

    属性描述
    Attributes设置或返回文件的属性
    DateCreated返回文件创建日期和时间
    DateLastAccessed返回文件最后访问日期和时间
    DateLastModified返回文件最后修改日期和时间
    Drive返回文件所在驱动器的盘符
    Name设置或返回文件名
    ParentFolder返回父文件夹的 Folder 对象
    Path返回文件的完整路径
    ShortName返回文件的短文件名(8.3 格式)
    ShortPath返回文件的短路径
    Size返回文件字节数
    Type返回文件类型描述

    Methods(文件对象的方法)

    File 对象本身也提供了几个方法用于操作文件:

    方法描述
    Copy将文件复制到另一个位置
    Delete删除文件
    Move将文件移动到另一个位置
    OpenAsTextStream打开文件并返回 TextStream 对象

    掌握 FileSystemObject 的这些属性和方法,基本上就可以随心所欲地处理服务器上的文件系统了。在实际项目中,注意权限控制和路径的正确性,就能避免大部分坑。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发
    相关文章 更多
    VB中判断空的几种方法(Null, Missing, Empty, Nothing, vbNullString)
    VB中判断空的几种方法(Null, Missing, Empty, Nothing, vbNullString)

    VB6 里有几个特别容易让人迷糊的“特殊值”——Null、Missing、Empty、Nothing、vbNullString。除了最后一个,其他几个都不能直接用 a = 值 这种方式来判断。下面咱们逐个拆解,理清楚它们到底是怎么回事。 1、Null Null 代表“空值”,本质上是一个不合法的数据

    Windows 10 x64 安装 Visual Basic 6.0 SP6注意事项
    Windows 10 x64 安装 Visual Basic 6.0 SP6注意事项

    在Windows 10 x64上安装Visual Basic 6.0 SP6,绝对是个让人头疼的活儿。折腾了两天才搞定,把遇到的坑和解决方法整理出来,希望能帮到正在挣扎的朋友。 先说几个前置条件:Windows 7 x64和Windows 8 x64理论上都能装,不过下面这些经验主要基于Win10

    VB中使用WMI获取系统硬件和软件有关信息
    VB中使用WMI获取系统硬件和软件有关信息

    WMI是Windows管理接口,支持本地及远程获取软硬件信息。VB中需引用MicrosoftWMIScriptingV1.1库,通过Win32_类如SoundDevice、VideoController等查询声卡、显卡、内存及操作系统详情。该技术广泛用于系统监控与配置。

    在VB中遍历文件并用正则表达式完成复制及vb实现重命名、拷贝文件夹的方法
    在VB中遍历文件并用正则表达式完成复制及vb实现重命名、拷贝文件夹的方法

    在VB开发中,利用FSO对象和正则表达式可实现文件按规则复制,如将文件名含“1项目”或“一项目”的文件复制到目标目录;同时也可实现文件夹重命名与拷贝,代码结构清晰,可直接套用或微调。

    VB关机恶搞小程序
    VB关机恶搞小程序

    基于VB的恶搞关机小程序利用系统命令或API触发强制关机,并通过注册表或启动文件夹实现自启动。交互版添加对话框要求输入“我是猪”取消关机,同时拦截关闭事件进行自我保护。核心涉及关机触发与自启动机制。

    VB实现的《QQ美女找茬游戏》实例
    VB实现的《QQ美女找茬游戏》实例

    一个基于VB的自动找茬程序,通过API截取屏幕两幅图片,逐像素对比其RGB分量,差值超过30时标记为差异点,并在窗体上绘制结果。程序将窗口设为总在最前,点击触发分析,实现快速自动找茬。

    VB实现按行读取文本文件的方法
    VB实现按行读取文本文件的方法

    VB中使用LineInput语句与FreeFile函数逐行读取文本文件,避免一次性加载大文件造成内存溢出。每行读取后可进行拼接、解析等处理,操作完毕必须关闭文件以释放系统资源。

    VB键盘鼠标无动作调用程序的尝试
    VB键盘鼠标无动作调用程序的尝试

    实现键盘鼠标无动作时调用程序,曾尝试HOOK钩子与Windows屏保检测均失败。最终用GetLastInputInfo函数获取系统空闲时间,成功触发操作,例如空闲15分钟弹出关机提示。

    VB实现禁用任务管理器的方法
    VB实现禁用任务管理器的方法

    在WindowsXP系统中,通过二进制流占用任务管理器可执行文件即可禁用任务管理器,使其无法被用户启动;而在Vista及Windows7系统中,则需要改用任务终止命令强制结束进程,并将该命令置于定时器事件中循环执行,从而持续阻止任务管理器重新启动,最终实现对任务管理器的长期禁用。这一方法通过占用文件。

    VB简单实现防止文件被改写
    VB简单实现防止文件被改写

    在VB程序中,防止配置文件被改写的有效方法是在程序运行期间先打开文件并保持占用状态,使系统提示文件被占用而无法手动修改。同时,程序启动时检查文件是否存在,若不存在则自动创建并写入默认值。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。