后台做简单的文件管理、附件浏览时,需要读取服务器物理目录。FSO(FileSystemObject)是经典 ASP 操作文件系统的标准组件,配合 Server.MapPath 可以把虚拟路径转成物理路径来遍历。

实现思路

Server.CreateObject 创建 FSO 对象,GetFolder 拿到目录对象,folder.Files 集合就是全部文件;逐个读取 Name、Size、DateLastModified 属性输出,最后释放对象。

完整代码

<%@ Language="VBScript" CodePage=65001 %>
<%
Option Explicit
Dim fso, folder, file
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(Server.MapPath("/upload"))

Response.Write "目录:" & folder.Path & "<br>"
For Each file In folder.Files
    Dim kb
    kb = FormatNumber(file.Size / 1024, 1)
    Response.Write file.Name & " - " & kb & " KB - " & file.DateLastModified & "<br>"
Next

Set file = Nothing
Set folder = Nothing
Set fso = Nothing
%>

扩展思路

  • 按扩展名过滤:在 For Each 里判断 LCase(fso.GetExtensionName(file.Name));
  • 统计总量:循环里累加 file.Size 变量即可;
  • 写文件用 CreateTextFile 加 True 覆盖参数再调用 Write,追加内容则用 OpenTextFile 的 ForAppending 模式。

小结

FSO 三件套:GetFolder 遍历、CreateTextFile 写、OpenTextFile 读,几乎覆盖所有文件管理需求,注意目录权限要放给 IIS 进程账户。