ASP中Scripting.FileSystemObject对象执行问题以及其方法createFolder("test")执行不了问题
出现的问题描述:
在我本机执行是ok的,服务器上一开始也是ok的,在安装了 FrontPage Server Extensions(FPSE) 2002就不行了,现在把FPSE卸载了 这是完整的代码,
dim XMLPath XMLPath= server.mappath("/") & "fdp\"& month(now) & "-" & day(now) & " " & hour(now) & "-" & minute(now) & "-" & second(now) Set fso = CreateObject("Scripting.FileSystemObject") response.write "<br/>OKK1111111111111" & XMLPath fso.createFolder(XMLPath) response.write "<br/>OKK2222222222222" & XMLPath fso.createFolder(XMLPath & "\configuration") response.write "<br/>OKK33333333333333" & XMLPath XMLPath=XMLPath & "\configuration" fso.createFolder(XMLPath & "\parameter") fso.createFolder(XMLPath & "\wallpapers") fso.createFolder(XMLPath & "\sounds") fso.createFolder(XMLPath & "\sounds\alarms") fso.createFolder(XMLPath & "\sounds\notifications") fso.createFolder(XMLPath & "\sounds\ringtones") fso.createFolder(XMLPath & "\sounds\ui") response.write "<br/>OKK444444444444" & XMLPath
原因和解决办法:
除此之外,有部分执行的问题是因为
1.是因为Scripting.FileSystemObject对象的未注册问题,
解决办法:
重新注册scrrun.dll
如:“开始”---“运行”中输入“regsvr32.exe %windir%/system32/scrrun.dll”然后回车,重新注册一下FSO对象
检测方式可借鉴:建议使用阿江探针测试一下你现在的服务器上FileSystemObject组件状况;
2。使用错误检测机制发现问题原因
On Error Resume Next ‘fso.createFolder(XMLPath) 出错行内容 If Err.Number <> 0 then response.write "you cuo wu" %> 错误 Number: <%= Err.Number %><br/> 错误信息: <%= Err.Description %><br/> 出错文件: <%= Err.Source %><br/> 出错行: <%= Err.Line %><br/> <%= Err %> end if On Error Goto 0
使用这个就可以检测错误了,对于错误 Number,可参考: ASP Err.Number 对应的Description
关于安装之后的文章,分析考参考,MSDN文章:IIS 有问必答 – 2003 年 8 月
3。使用如下分方式来检测
Function MD(strSysPath) On Error Resume Next Dim i Dim objFSO Dim arrPath Dim strNoncePath MD = True Set objFSO = Server.Createobject("Scripting.FileSystemObject") If Not objFSO.FolderExists(strSysPath) Then arrPath = Split(strSysPath, "\") strNoncePath = arrPath(0) For i = 1 To UBound(arrPath) strNoncePath = strNoncePath & "\" & arrPath(i) If objFSO.FolderExists(strNoncePath) Then Else objFSO.CreateFolder strNoncePath End If Next End If Set objFSO = Nothing If Err.Number <> 0 Then MD = False On Error Goto 0 End Function
示例代码:response.write MD(XMLPath & "\sounds") 'True为成功 False为失败
最后说下 ASP 真的很过时了。。。。。。