VB.net将列表框中的.bat文件预览到文本框

时间:2016-01-25 06:30:37

标签: vb.net file casting directory

工作原理; 我的程序正在查找所选路径的文件夹和子文件夹中的所有.bat文件。

首先我有一个浏览按钮,您可以在其中选择一个文件夹。当使用浏览按钮选择文件夹时,我有一个inputtb1(输入文本框),它采用完整路径并标记它。最后我有一个selectbtn(选择按钮),然后搜索所有的bat文件,并在MainListBox(列表框)中列出它们。

总而言之,指定路径的文件夹和子文件夹中的所有.bat文件都列在列表框中。

现在我有一个PreviewTB(预览文本框),它应该预览列表框SelectedItem的bat文件的内容。这是我遇到问题的地方。

看起来像这样:

enter image description here

所以它的浏览 - > inputtb1(它表示路径) - >选择 - > mainlistbox - >然后,当我突出显示列出的其中一个文件时,我想在previewtb中预览。选择文件夹后inputtb1的外观如何:C:\Users\xxx\Google Drive

以下是每个sub的代码(稍微缩短以便更快阅读)

**Private sub Inputtb1**
'Nothing here

**Private Sub btnBrowse_Click**
If (FolderBrowserDialog1.ShowDialog() = DialogResult.OK) Then
        Inputtb1.Text = FolderBrowserDialog1.SelectedPath
    End If

**Private Sub btnSelect1_Click**
Dim directory = New DirectoryInfo(Inputtb1.Text)
    Dim files() As System.IO.FileInfo
    Dim dirinfo As New System.IO.DirectoryInfo(Inputtb1.Text)
    files = dirinfo.GetFiles("*.bat", IO.SearchOption.AllDirectories)
    For Each file In files
        MainListBox.Items.Add(file)
    Next


**Private Sub MainListBox_SelectedIndexChanged**        
    Dim selectedfile As String = Inputtb1.Text & MainListBox.SelectedItem
    'Check if file exists
    If System.IO.File.Exists(selectedfile) = True Then
        Dim objReader As New System.IO.StreamReader(selectedfile)
        'Save file contents to textbox
        PreviewTB.Text = objReader.ReadToEnd
        objReader.Close()
    Else
        MsgBox("File not found!")
    End If

问题:我认为是这一行Dim selectedfile As String = Inputtb1.Text & MainListBox.SelectedItem,因为我似乎无法弄清楚如何告诉previewtb打开哪个文件。此外,如果我选择的路径的子文件夹。我尝试了几种变体,但是当我在主列表框中突出显示.bat时,我总是会收到错误。该错误指出了我刚才提到的dim selectedfile...,并指出“System.InvalidCastException”。

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

我想你可能会错过“\”。看看:

Inputtb1.Text = FolderBrowserDialog1.SelectedPath

因此它的格式如下:

C:\Users\xxx\Google Drive

然后当你做

Dim selectedfile As String = Inputtb1.Text & MainListBox.SelectedItem

假设MainListBox.SelectedItemString,其值为“myfile.txt”,这就是结果:

C:\Users\xxx\Google Drivemyfile.txt

尝试添加“\”

Dim selectedfile As String = Inputtb1.Text + "\" + MainListBox.SelectedItem.ToString()

注意:只是为了确保我在那里添加了ToString()