如何解决这个问题.进程无法访问该文件



进程无法访问文件"F:\copy backup\system\HRM 2-5-2013\HRM\HRM\lanbased.txt",因为其他进程正在使用该文件。这是我在副主中的代码

Public localhost As String
Public username As String
Public port As String
Public database As String
Public conn As New MySqlConnection
Public NAME1 As String = "F:copy back upsystemHRM 2-5-2013HRMHRMlanbased.txt"
Public Sub main()
    Dim frm As New Form1
    Dim frm1 As New create
    If System.IO.File.Exists(NAME1) = True Then
        Try
            Dim objReader As New System.IO.StreamReader(NAME1)
            localhost = objReader.ReadLine() & vbNewLine
            username = objReader.ReadLine() & vbNewLine
            port = objReader.ReadLine() & vbNewLine
            database = objReader.ReadLine() & vbNewLine
            conn.ConnectionString = "server=" & Trim(localhost) & ";user id=" & Trim(username) & "; password=" & Trim(port) & "; database=" & Trim(database) & ""
            conn.Open()

            Application.Run(New Form1())
        Catch ex As Exception
            MsgBox("Unable  to connect to database", vbCritical)
            Application.Run(New create())
        End Try
    End If
    Exit Sub
End Sub

这是我表单create中的代码。当另一个进程正在使用该文件时,我如何访问该文件?

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim FILE_NAME As String = "F:copy back upsystemHRM 2-5-2013HRMHRMlanbased.txt"
    If TextBox1.Text = Nothing Or TextBox2.Text = Nothing Or TextBox3.Text = Nothing Or TextBox4.Text = Nothing Then
        MsgBox("fill up mo pa ngot")
    ElseIf System.IO.File.Exists(FILE_NAME) = True Then
        Dim objWriter As New System.IO.StreamWriter(FILE_NAME)

        objWriter.Write(TextBox1.Text + vbCrLf)
        objWriter.Write(TextBox2.Text + vbCrLf)
        objWriter.Write(TextBox3.Text + vbCrLf)
        objWriter.Write(TextBox4.Text + vbCrLf)
        objWriter.Close()
        TextBox1.Clear()
        TextBox2.Clear()
        TextBox3.Clear()
        TextBox4.Clear()
    ElseIf conn.State = True Then
        MsgBox("maka connect naka")
    End If
End Sub

首先在这里打开文件进行阅读:

Dim objReader As New System.IO.StreamReader(NAME1)    //1st open

第二,您调用form1:Application.Run(New Form1())

在该表格中,您有:Dim objWriter As New System.IO.StreamWriter(FILE_NAME) //2nd open

但请等待you didn't close your file,这样您就无法第二次打开它进行写入。

所以你需要像objReader.close() 一样关闭文件before calling create form 1

        conn.Open()
        objReader.close()    <----- this one
        Application.Run(New Form1())

在打开新表单之前,似乎需要关闭streamReader:

objReader.Close()

这将释放文件。

最新更新