重命名文件错误:进程无法访问该文件,因为它正被另一个进程使用

时间:2014-05-24 16:19:39

标签: vb.net .net

我正在创建一个应用程序,允许用户使用vb.net中的Web浏览器控件预览文件,并允许使用文本框输入其他一些细节。保存详细信息后,该文件将从列表中删除,并将添加到已完成文件列表中,并将自动重命名。问题是,当我尝试重命名该文件时,会发生一个异常,指出“进程无法访问该文件,因为它正被另一个进程使用”。如何终止我能够重命名文件的过程?

Original_File :它是完整的目标和文件名。
SelectedFile :它是文件名。
ClearEmpData :清除字段。

    Private Sub btnSave_Emp_Click(sender As Object, e As EventArgs) Handles btnSave_Emp.Click
    Dim SP_Name As String = "SP_EmpData"
    Dim SP_Param As String() = {"@DType", "@Equip", "@EmpNo", "@LN", "@FN", "@Path"}
    Dim SP_Val As String() = {cbDataType_emp.Text, Equipment_Type, Emp_No, LastName, FirstName, New_Path}

    If cbDataType_emp.SelectedIndex <= 0 Then
        MyFile.Message.ShowEntryError("Please select data type.", cbDataType_emp)
        Exit Sub
    Else
        If Not MyFile.Process.MoveFiles(Root_Dir, dgvEncode.SelectedCells.Item(1).Value, cbDocType.Text) Then Exit Sub
        If Not ExecuteSaveProcedure(SP_Name, SP_Param, SP_Val) Then Exit Sub

        Original_File = dgvEncode.SelectedCells.Item(2).Value

        Dim dr As DataGridViewRow
        For Each dr In dgvEncode.SelectedRows
            dgvEncode.Rows.Remove(dr)
            dgvDone.Rows.Add(dr)
        Next
        dgvEncode.CurrentCell.Selected = dgvEncode.Rows.Count
        ClearEmpData()
        dgvDone.ClearSelection()

        Try
            My.Computer.FileSystem.RenameFile(Original_File, "xDone_" & SelectedFile)
        Catch ex As Exception
            MyFile.Message.ShowWarnning(ex.Message)
            Exit Sub
        End Try

    End If
End Sub

1 个答案:

答案 0 :(得分:1)

我已经解决了这个问题。我创建了一个临时文件进行预览,然后重命名原始文件,然后删除临时文件。