我正在创建一个需要填充子文件夹名称的系统,这将是参考URL的一部分。这些子文件夹将通过FTP软件在提供的文件夹(例如新闻稿)下手动上传。每当创建服务器中的子文件夹时,该子文件夹的名称将显示在页面上,以便用户可以选择。之后,将创建指向该子文件夹的URL以供进一步使用。
现在我的当前代码(如下)在填充子文件夹名称时效果很好。但是,在此步骤之前,我想检查是否存在任何子文件夹。如果没有,请让用户先进行上传,然后再采取进一步措施。
我已尝试使用下面的代码,但无效。那么请你帮帮我吧。谢谢。
<%
Dim objFSO
dim fo,x
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
set fo=objFSO.GetFolder(Server.MapPath("../newsletterDB"))
for each x in fo.SubFolders
if fo.SubFolders <> null then
Response.write("<input type = ""radio"" name=""group1"" value=" & x.Name & ">" & x.Name & "<br>")
else
response.write " Please upload any e-Mag first !"
end if
next
set fo=nothing
set objFSO=nothing
%>
答案 0 :(得分:2)
您的代码失败,因为您迭代子文件夹,并且只在循环中执行检查。
这是一个自定义函数,我必须返回给定根文件夹的子文件夹名称的简单数组:
'GetSubFolders: gets absolute path of a folder and returns array of its sub folders.
'In case given path is not a valid existing folder path, empty array is returned. (no error check)
Function GetSubFolders(strAbsoluteFolderPath)
Dim objFSO, objFolder, arrSubFolders()
Dim oCurrentSubFolder
ReDim arrSubFolders(-1)
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(strAbsoluteFolderPath) Then
Set objFolder = objFSO.GetFolder(strAbsoluteFolderPath)
For Each oCurrentSubFolder In objFolder.SubFolders
ReDim Preserve arrSubFolders(UBound(arrSubFolders) + 1)
arrSubFolders(UBound(arrSubFolders)) = oCurrentSubFolder.Name
Next
Set objFolder = Nothing
End If
Set objFSO = Nothing
GetSubFolders = arrSubFolders
End Function
在您的案例中使用非常简单:
Dim arrSubFolders
arrSubFolders = GetSubFolders(Server.MapPath("../newsletterDB"))
If UBound(arrSubFolders)>=0 Then
Response.write("<input type = ""radio"" name=""group1"" value=""" & arrSubFolders(0) & """>" & arrSubFolders(0) & "<br>")
Else
response.write " Please upload any e-Mag first !"
End If
Erase arrSubFolders