【问题标题】:Create Sub-folder list when dropdown option is selected选择下拉选项时创建子文件夹列表
【发布时间】:2013-06-26 19:36:44
【问题描述】:

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

最后如果点击[提交]按钮,它将打开我在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>

感谢您的帮助

【问题讨论】:

    标签: vbscript hta


    【解决方案1】:

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

    至于您的问题,您需要在&lt;select&gt; 标签中添加onChange 处理程序:

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

    还有一个过程EnumSubFolders 来枚举子文件夹:

    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 进行一些修改(例如在刷新列表之前记住当前选择的选项)。

    【讨论】:

    • 请避免“谢谢”cmets。对 SO 表示感谢的适当方式是投票和/或accept 答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 2020-05-26
    • 2012-11-19
    • 2017-05-19
    相关资源
    最近更新 更多