在vb.net中打开、启动或显示供用户读取或写入的文件
听起来很简单,但我已经搜索过了,似乎找不到打开用户刚刚从我的windows窗体应用程序创建的日志文件的方法。文件退出,我只想在创建后打开它 我有一个在vb.net中打开、启动或显示供用户读取或写入的文件,vb.net,winforms,file-io,Vb.net,Winforms,File Io,听起来很简单,但我已经搜索过了,似乎找不到打开用户刚刚从我的windows窗体应用程序创建的日志文件的方法。文件退出,我只想在创建后打开它 我有一个Dim路径作为String=TextBox1.Text,一旦输入用户名并在savefiledialog上单击ok,我就有一个msgbox,上面写着“完成”,当你点击ok时,我就尝试了这个方法 FileOpen(FreeFile、path、OpenMode.Input)但什么也没发生。我只想让它打开日志并向用户显示,以便他们可以再次编辑或保存日志或其他
Dim路径作为String=TextBox1.Text
,一旦输入用户名并在savefiledialog上单击ok,我就有一个msgbox,上面写着“完成”,当你点击ok时,我就尝试了这个方法
FileOpen(FreeFile、path、OpenMode.Input)
但什么也没发生。我只想让它打开日志并向用户显示,以便他们可以再次编辑或保存日志或其他任何内容
这就是我得到上述代码的地方。
搜索很困难,因为每个人都试图“打开”一个文件并在运行时处理它。我只是想通过启动来显示一个文件,就像有人双击它一样。
这是整个导出按钮单击子按钮。它基本上将列表框项目写入文件
Private Sub btnExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExport.Click
Dim sfd As New SaveFileDialog
Dim path As String = TextBox1.Text
Dim arypath() As String = Split(TextBox1.Text, "\")
Dim pathDate As String
Dim foldername As String
foldername = arypath(arypath.Length - 1)
pathDate = Now.ToString("yyyy-MM-dd") & "_" & Now.ToString("hh;mm")
sfd.FileName = "FileScannerResults " & Chr(39) & foldername & Chr(39) & " " & pathDate
sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal)
sfd.Filter = "Text files (*.txt)|*.txt|CSV Files (*.csv)|*.csv"
sfd.ShowDialog()
path = sfd.FileName
Using SW As New IO.StreamWriter(path)
If CkbxFolder.Checked = True Then
SW.WriteLine("Folders")
For Each itm As String In ListBox1.Items
SW.WriteLine(itm)
Next
End If
If CkbxFiles.Checked = True Then
SW.WriteLine("Files")
For Each itm As String In ListBox2.Items
SW.WriteLine(itm)
Next
End If
End Using
MsgBox("Done...")
FileOpen(FreeFile, path, OpenMode.Input) 'Why can't I open a file for you...
End Sub
不要使用旧的VB6方法。出于兼容性原因,它们仍然存在,新代码应该使用System.IO命名空间中更强大的方法
但是,正如评论中所说,FileOpen不会为您显示任何内容,只会打开文件
你可以写
Using sr = new StreamReader(path)
Dim line = sr.ReadLine()
if !string.IsNullOrEmpty(line) Then
textBoxForLog.AppendText(line)
End If
End Using
或者简单地说(如果文件不是太大)
或者,您可以要求操作系统运行与文件扩展名关联的程序,并为您显示文件
Process.Start(path)
要获得与用户双击相同的行为,只需使用System.Diagnostics.Process
,并将文件名传递给它的Start
方法:
Process.Start(path)
这将根据文件扩展名使用默认应用程序打开文件,就像浏览器双击文件一样。FileOpen不为您显示任何内容,只打开文件,现在取决于您阅读内容并在多行文本框中显示谢谢,我知道这很简单。
Process.Start(path)