按名称获取子文件夹并将Webrowser导航到该路径

时间:2016-09-26 15:52:52

标签: vb.net webbrowser-control

我的组合框具有文件夹名称(位于我的C:\子文件夹中)作为项目。我想根据我的组合框中选择的文件夹名称导航我的Webrowser。这是我试过的:

Dim myDirectories = Directory.GetDirectories("C:\", MyCombo.Text, SearchOption.AllDirectories)

          WebBrowser1.Navigate(myDirectories)

我如何搜索子文件夹才能使其正常工作?我收到错误:“指定的地址不能存在。”在webrowser控制中。

编辑(为了让自己更清楚一点):

示例 - 有一个名为Test的文件夹和名为Example的文件夹....它们位于C:\但不同的子文件夹中 - 如“C:\ Windows \ Test”和“C:\ Program Files \ Microsoft \实施例”。

  1. 我从Combobox项目中选择“测试”或“示例”;

  2. 然后通过代码,Webrowser应该导航到我电脑上的那个文件夹URL。

  3. 因此,代码应按照Combobox中的名称搜索所有文件夹/子文件夹,然后将路径传递给Webbrowser URL(如果有任何匹配条件)。

3 个答案:

答案 0 :(得分:0)

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim strFiles As String() = IO.Directory.GetDirectories("C:\")
    For Each sDir As String In strFiles
        ListBox1.Items.Add(sDir)
    Next
End Sub

Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
    If ListBox1.Items.Count > -1 Then
        Process.Start("explorer", ListBox1.SelectedItem.ToString)
    End If
End Sub

答案 1 :(得分:0)

解决。我就是这样做的,随意提出更好的建议:

Dim myDirectory = Directory.GetDirectories("C:\", MyCombo.Text, SearchOption.AllDirectories)

 For Each folder As String In myDirectory

            WebBrowser1.Navigate(folder)
 Next

答案 2 :(得分:0)

为什么要将Web浏览器用于本地路径?网络浏览器适用于互联网,这就是为什么您收到错误的原因,因为它正在寻找http而不是c:\。

使用Combobox替换Listbox

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim strFiles As String() = IO.Directory.GetDirectories("C:\")
    For Each sDir As String In strFiles
        ComboBox1.Items.Add(sDir)
    Next

End Sub

Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
    If ComboBox1.Items.Count > -1 Then
        Process.Start("explorer", ComboBox1.SelectedItem.ToString)
    End If
End Sub

如果您愿意,可以使用该ListBox保存所选目录中的文件列表,从而完全删除Web浏览器控件

    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
    Dim strFiles As String() = Nothing
    If ComboBox1.Items.Count > 0 Then
        strFiles = IO.Directory.GetFiles(ComboBox1.SelectedItem.ToString)
        ListBox1.Items.Clear()
        For Each sFile As String In strFiles
            ListBox1.Items.Add(IO.Path.GetFileName(sFile))
        Next
    End If
End S