我的组合框具有文件夹名称(位于我的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 \实施例”。
我从Combobox项目中选择“测试”或“示例”;
然后通过代码,Webrowser应该导航到我电脑上的那个文件夹URL。
因此,代码应按照Combobox中的名称搜索所有文件夹/子文件夹,然后将路径传递给Webbrowser URL(如果有任何匹配条件)。
答案 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