2

该进程无法访问文件“F:\copy back up\system\HRM 2-5-2013\HRM\HRM\lanbased.txt”,因为它正被另一个进程使用。这是我在 sub main 中的代码

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 up\system\HRM 2-5-2013\HRM\HRM\lanbased.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

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

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 up\system\HRM 2-5-2013\HRM\HRM\lanbased.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
4

2 回答 2

2

首先你打开你的文件在这里阅读:

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,这样您就无法第二次打开它进行写作。

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

        conn.Open()
        objReader.close()    <----- this one
        Application.Run(New Form1())
于 2013-02-21T08:45:57.083 回答
1

看起来您需要在打开新表单之前关闭您的 streamReader:

objReader.Close()

这将释放文件。

于 2013-02-21T08:38:28.423 回答