在Visual Basic中使用StreamWriter时获取文件使用中的异常

时间:2014-06-24 13:31:05

标签: .net vb.net filestream streamwriter basic

我一整天都在尝试这一切并且看了很多问题/答案而且没有帮助我解决我的问题..

我正在创建一个小程序,以便多个用户可以更新一个文本文件(然后填充富文本框)。一次只有一个用户会编辑此文本文件,但所有用户都将打开该程序。

我遇到的问题是由于文件正在使用而引发异常。如果该程序在XP机器上使用,它不会产生任何问题..但是如果该程序在Windows 7机器上使用,它首次更新它,但后来没有其他人(包括Windows) XP机器)能够使用该程序更新文本文件,因为它会引发异常。

以下是我用于写入文件的代码。

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles saveButton.Click
    Using fs As New FileStream("W:\Samboard\Textboard.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)
        Using sw As New IO.StreamWriter(fs)
            sw.Write(MessageBox1.Text)
            sw.Dispose()
            sw.Close()
        End Using
        fs.Dispose()
        fs.Close()
    End Using

End Sub

这是我用来从文本文件中读取文本并在RTB中显示它的代码(这是在计时器上运行)。

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Dim currentText As String
    Dim fileText As String
    currentText = MessageBox1.Text
    Using sr As New IO.StreamReader("W:\Samboard\Textboard.txt", False)
        fileText = sr.ReadToEnd()
        sr.Dispose()
        sr.Close()
    End Using
    If currentText <> fileText Then
        MessageBox1.Text = fileText
        Me.Activate()
    End If
End Sub

非常感谢任何帮助。

编辑:我还应该补充一点,就是有一个单独的程序,然后使用与此相同的方法从文本文件中读取文本,但是没有能力编写。

0 个答案:

没有答案