You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IIS7创建虚拟目录后,Scripting.FileSystemObject的GetFolder路径识别失败求助

解决IIS7中虚拟目录结合FSO GetFolder的路径识别问题

你这是踩了ASP虚拟目录使用的典型误区,咱们一步步捋清楚解决办法:

问题核心

你当前代码的路径拼接逻辑完全错了:

sPath = "\CMapped\database\attendanceData\"
sDir = Server.MapPath(".") & sPath

Server.MapPath(".")返回的是当前ASP文件所在的物理路径(也就是你D盘的站点目录),你把虚拟目录名称CMapped拼在后面,等于让FSO去找D:\你的站点路径\CMapped\database\attendanceData\——但这个路径根本不存在,你的虚拟目录实际指向的是C盘的独立文件夹,和D盘站点没有物理关联。

修复后的代码

直接对虚拟目录的URL路径使用Server.MapPath,就能正确映射到它对应的C盘物理路径:

sDir = Server.MapPath("/CMapped/database/attendanceData/")
response.write sDir
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set obj_FolderBase = fso.GetFolder(sDir)
response.end

小提醒:如果你的ASP文件不在站点根目录,要调整相对路径,比如页面在/admin/下就用../CMapped/database/attendanceData/,用绝对路径/CMapped/...会更稳妥。

额外权限校验

虽然你已经设置了虚拟目录的“连接为”,但还要确认:

  • IIS应用池的运行身份(默认是ApplicationPoolIdentity)对C盘目标文件夹有读取+列出内容的权限
  • 检查C盘文件夹的NTFS权限,必要时给应用池身份手动添加权限

你提供的问题相关信息:

报错截图

错误提示

已执行操作

  • 创建虚拟目录指向C盘,设置“连接为”管理员账号并完成授权:
    虚拟目录授权设置
  • 将C盘目标文件夹设置为共享:
    C盘文件夹共享设置
  • IIS中浏览虚拟目录成功:
    虚拟目录浏览成功

目录结构

目录结构

原始代码

sPath = "\CMapped\database\attendanceData\"
sDir = Server.MapPath(".") & sPath
response.write sDir
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set obj_FolderBase = fso.GetFolder(sDir)
response.end

内容的提问来源于stack exchange,提问作者Hanz Cheah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:00:23