使用来自 vb 控制台应用程序的文件选择器打开 *.txt
Open *.txt with file selector from vb console application
我需要使用控制台应用程序。我想要一个文件 select 或打开,以便用户可以 select 任何 .txt 文件。我查看了 OpenFileDialog,但据我所知它仅适用于表单应用程序。
这种window正是我要找的:
就像我说的,您不应该在控制台应用程序中使用 Windows-UI,也就是说,您可以按照您的要求执行此操作。
我在我的本地机器上写了它并且它有效。
创建一个新的 VB.Net 控制台项目,并引用 System.Windows.Forms
并将整个代码粘贴到 module1.vb
(P.S。我更新它以包含 @Codexer 的建议,并且还在异常处理程序中包含错误消息。)
Imports System.Windows.Forms
Module Module1
<STAThread()> _
Sub Main()
Dim OpenFileDlg as new OpenFileDialog
OpenFileDlg.FileName = "" ' Default file name
OpenFileDlg.DefaultExt = ".txt" ' Default file extension
OpenFileDlg.Filter = "Text Files (*.txt)|*.TXT"
OpenFileDlg.Multiselect = True
OpenFileDlg.RestoreDirectory = True
' Show open file dialog box
Dim result? As Boolean = OpenFileDlg.ShowDialog()
' Process open file dialog box results
for each path in OpenFileDlg.Filenames
Try
System.Diagnostics.Process.Start(Path)
Catch ex As Exception
MsgBox("Error loading the file" & vbCrLf & ex.Message)
End Try
If result = True Then
' Open document
Else
Exit Sub
End If
next
End Sub
End Module
这是输出。
我需要使用控制台应用程序。我想要一个文件 select 或打开,以便用户可以 select 任何 .txt 文件。我查看了 OpenFileDialog,但据我所知它仅适用于表单应用程序。
这种window正是我要找的:
就像我说的,您不应该在控制台应用程序中使用 Windows-UI,也就是说,您可以按照您的要求执行此操作。
我在我的本地机器上写了它并且它有效。
创建一个新的 VB.Net 控制台项目,并引用 System.Windows.Forms
并将整个代码粘贴到 module1.vb
(P.S。我更新它以包含 @Codexer 的建议,并且还在异常处理程序中包含错误消息。)
Imports System.Windows.Forms
Module Module1
<STAThread()> _
Sub Main()
Dim OpenFileDlg as new OpenFileDialog
OpenFileDlg.FileName = "" ' Default file name
OpenFileDlg.DefaultExt = ".txt" ' Default file extension
OpenFileDlg.Filter = "Text Files (*.txt)|*.TXT"
OpenFileDlg.Multiselect = True
OpenFileDlg.RestoreDirectory = True
' Show open file dialog box
Dim result? As Boolean = OpenFileDlg.ShowDialog()
' Process open file dialog box results
for each path in OpenFileDlg.Filenames
Try
System.Diagnostics.Process.Start(Path)
Catch ex As Exception
MsgBox("Error loading the file" & vbCrLf & ex.Message)
End Try
If result = True Then
' Open document
Else
Exit Sub
End If
next
End Sub
End Module
这是输出。