即使没有保存,StreamWriter也会留下文件

时间:2014-02-02 22:38:22

标签: vb.net streamwriter savefiledialog

我有这个代码将文本框中的一些数据写入文本文件。而我正在使用streamwriter来做到这一点。在这里您可以看到以下代码:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim Save As New SaveFileDialog()
        Dim myStreamWriter As System.IO.StreamWriter
        Save.Filter = "Text [*.txt*]|*.txt|All Files [*.*]|*.*"
        Save.CheckPathExists = True
        Save.Title = "Export & Save - FNG"
        Save.FileName = txtTitle.Text & " - Plugs Details File Exported"
        Save.ShowDialog(Me)
        Try

            myStreamWriter = System.IO.File.AppendText(Save.FileName)
            myStreamWriter.Write("Details of Plugs:" & Environment.NewLine & txtDetails.Text & Environment.NewLine & DateAndTime.Now)
            myStreamWriter.Flush()
        Catch ex As Exception
        End Try


    End Sub

代码工作正常,它也将细节保存到文本文件中。但问题是当我取消保存文件对话框(不保存文本文件)时,它会在应用程序启动路径中创建一个文件。为什么会这样?我究竟做错了什么?我该如何纠正这个?

1 个答案:

答案 0 :(得分:1)

尝试

If Save.ShowDialog(Me) <> DialogResult.Ok Then Return

取消对话框不会自动使您的Sub返回!

此外,您使用StreamWriter错误。使用

Using myStreamWriter As System.IO.StreamWriter = System.IO.File.AppendText(Save.FileName)
        myStreamWriter.Write("Details of Pish flaps:" & Environment.NewLine & txtDetails.Text & Environment.NewLine & DateAndTime.Now)
End Using

然后移除Dim的{​​{1}}。这将确保即使抛出异常,StreamWriter也会关闭。