该进程无法访问该文件,因为它正被另一个进程使用。在写入vb.net中的文件时出错

时间:2012-06-14 11:02:41

标签: vb.net

在我的vb.net代码中使用streamwriter写入已作为表单输入的文件。

 Dim strContents As String
        Dim objReader As StreamReader
        Try

            objReader = New StreamReader("C:\test.txt")
            strContents = objReader.ReadToEnd()
            objReader.Close()

        Catch Ex As Exception

        End Try
        Dim Contents As String
        Dim bAns As Boolean = False
        Dim objWriter As StreamWriter
        Dim FileStream As System.IO.FileStream
        Try

            FileStream = New FileStream("C:\test.txt", FileMode.Open, FileAccess.ReadWrite)

            objWriter = New StreamWriter("C:\test.txt")
            objWriter.Write("fdgdfgdjkljljklg")
            objWriter.Close()
            bAns = True
        Catch Ex As Exception


        End Try

在某些系统中,它的工作正常,但在其他一些工作站中,它显示了主题中提到的错误。

这里限制了对文件的访问权限了什么? 有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

  

这里限制了对文件的访问权限了吗?

您尚未处理流,因此进程正在锁定文件。 StreamWriter持有文件的非托管句柄。如果您不处理此句柄,则其他线程/进程无法打开该文件。

我建议你始终在IDisposable语句中包含Using资源,以确保正确处理(即使在块内抛出异常):

Using filestream As New StreamWriter(Inifile, True, System.Text.Encoding.UTF8)
    ' ... use the filestream here to write to the file
End Using