帮解释一下这段代码

来源:百度知道 编辑:UC知道 时间:2024/06/20 10:11:23
Function MakeFile (UrlStr,ContentStr)
'创建文件对象,准备写入
UrlArr=Split(Server.mappath(UrlStr),"\")
set fso=Server.CreateObject("Scripting.FileSystemObject")

CurrFolder=UrlArr(0)
for i=1 to UBound(UrlArr)-1
CurrFolder=CurrFolder&"/"&UrlArr(i)
If Not fso.FolderExists(CurrFolder) Then
fso.CreateFolder(CurrFolder)
End If

next

if not fso.FileExists(UrlArr(i)) then
set hf=fso.CreateTextFile(Server.mappath(UrlStr),true)
hf.write ContentStr
set hf=nothing
set fso=nothing
end if
response.redirect ("http://"&CurrDomain&UrlStr)
End Function

提示错误

Microsoft VBScript 运行时错误 错误 '800a003a'

文件已存在

/index.asp,行 112

112是这行 fso.CreateFolder(CurrFolder)

麻烦从头到尾解释一下这代码的意思

我统一把注释写在每一句的上一行吧:

Function MakeFile (UrlStr,ContentStr)
'## 先把UrlStr通过Server.mappath方法映射为物理路径,再用Split把该物理路径以“\”为标识分割为数组。
UrlArr=Split(Server.mappath(UrlStr),"\")
'## 创建一个FSO文件系统对象
set fso=Server.CreateObject("Scripting.FileSystemObject")
'## 定义一个目录(文件夹),赋值给CurrFolder。其值为UrlArr数组里的第一个元素(其实就是磁盘根目录:“C:”、“D:”、“E:”)。
CurrFolder=UrlArr(0)
'## 开始一个循环,循环次数为从1到UrlArr数组下标-1
for i=1 to UBound(UrlArr)-1
'## 组合CurrFolder,其值为之前的值加UrlArr数组里相应的下一个值。(其实就是依次展开文件夹)
CurrFolder=CurrFolder&"/"&UrlArr(i)
'## 判断组合后的CurrFolder(文件夹)是否“不”存在。
If Not fso.FolderExists(CurrFolder) Then
'## 判断为真(即:该文件夹不存在),创建该目录。
fso.CreateFolder(CurrFolder)
'## 判断结束
End If

'## 循环结束
next

'## 判断UrlArr(i)这个文件是否“不”存在(这里,i已经到达UrlArr下标,所以应该是UrlArr数组里最后一个元素,也就是文件名)
if not fso.FileExists(UrlArr(i)) then
'## 判断为真(即:该文件不存在