工作原理; 我的程序正在查找所选路径的文件夹和子文件夹中的所有.bat文件。
首先我有一个浏览按钮,您可以在其中选择一个文件夹。当使用浏览按钮选择文件夹时,我有一个inputtb1
(输入文本框),它采用完整路径并标记它。最后我有一个selectbtn
(选择按钮),然后搜索所有的bat文件,并在MainListBox
(列表框)中列出它们。
总而言之,指定路径的文件夹和子文件夹中的所有.bat文件都列在列表框中。
现在我有一个PreviewTB(预览文本框),它应该预览列表框SelectedItem
的bat文件的内容。这是我遇到问题的地方。
看起来像这样:
所以它的浏览 - > 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”。
任何人都知道我做错了什么?
答案 0 :(得分:1)
我想你可能会错过“\”。看看:
Inputtb1.Text = FolderBrowserDialog1.SelectedPath
因此它的格式如下:
C:\Users\xxx\Google Drive
然后当你做
Dim selectedfile As String = Inputtb1.Text & MainListBox.SelectedItem
假设MainListBox.SelectedItem
是String
,其值为“myfile.txt”,这就是结果:
C:\Users\xxx\Google Drivemyfile.txt
尝试添加“\”
Dim selectedfile As String = Inputtb1.Text + "\" + MainListBox.SelectedItem.ToString()
注意:只是为了确保我在那里添加了ToString()