选择下拉选项时创建子文件夹列表



我有一个HTA代码,下面列出了特定文件夹中的所有子文件夹。我的问题是,如果我点击列表中的一个子文件夹,它如何自动创建第二个列表,为我提供该子文件夹中的所有子文件夹?以此类推,直到找不到更多的子文件夹,最后一个子文件夹需要列出其中的所有文件。此外,我如何在每个列表的末尾添加一个名为[新文件夹]的额外选项,该选项将弹出一个窗口,允许输入名称来创建新文件夹。

最后,如果单击[提交]按钮,它将打开我在windows资源管理器中选择的最后一个子文件夹。我是vbs的新手,所以请帮助


<HEAD>
  <TITLE>K Drive Program Structure</TITLE>
  <HTA:APPLICATION ID="Hello" 
    APPLICATIONNAME="K Drive Program Structure" 
    BORDER="Dialog"
    CAPTION="Yes"
    SCROLL="NO"
    SHOWINTASKBAR="yes"
    SINGLEINSTANCE="yes"
    SYSMENU="Yes"
    WINDOWSTATE="maximize">
</HEAD>
<BODY>
<SCRIPT LANGUAGE="VBScript">
Sub UpdateList
  For Each opt In list.Options
    opt.RemoveNode
  Next
  Set fso = CreateObject("Scripting.FileSystemObject")
  For Each f In fso.GetFolder("K:AppData").SubFolders
    Set opt = document.createElement("OPTION")
    opt.Text  = f.Name
    opt.Value = f.Path
    list.Add(opt)
  Next
End Sub
</SCRIPT>
<H2>K Drive Structure</H2>
<P>CUSTOMER
<select id="list" name="list" onMouseOver="UpdateList"></select><P>
<BR>
<BR>
<Input Type = "Button" Name = "btn01" VALUE = "SUBMIT">
<Input Type = "Button" Name = "btn02" VALUE = "CLOSE">
<BR>
<BR>
</BODY>

感谢的帮助

为什么不像我建议的那样使用Shell.BrowseForFolder方法?试图在HTA中重新发明它总是很尴尬的。

至于您的问题,您需要在<select>标签中添加一个onChange处理程序:

<select id="list" name="list" onMouseOver="UpdateList" onChange="EnumSubFolders">
</select>

以及枚举子文件夹的过程CCD_ 4:

Sub EnumSubFolders
  Set fso = CreateObject("Scripting.FileSystemObject")
  For Each opt In list.options
    If opt.selected Then
      Set sf = fso.GetFolder(opt.value).SubFolders
      'do stuff with sf
      Exit For
    End If
  Next
End Sub

您可能也需要对UpdateList进行一些修改(比如在刷新列表之前记住当前选择的选项)。

相关内容

  • 没有找到相关文章

最新更新