如何检查是否存在任何子文件夹?

时间:2014-05-11 04:16:18

标签: javascript asp-classic

我正在创建一个需要填充子文件夹名称的系统,这将是参考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
%> 

1 个答案:

答案 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