无法删除文件。另一个进程正在使用的文件

时间:2013-03-18 17:33:44

标签: vb.net

我有一个下载文件的程序(简单文件更新程序)。在此之前,此文件的旧版本排队等待删除。但是,如果我编辑此文件,例如在文本编辑器中(保存并关闭它),然后我的程序拒绝删除它。

我喜欢这个

Private Sub delete_file(ByVal dir As String)
    Try
        If My.Computer.FileSystem.FileExists(dir) Then My.Computer.FileSystem.DeleteFile(dir)
    Catch ex As Exception
        Debug.WriteLine(ex.ToString())
        Sleep(1000)
        delete_file(dir)
    End Try
End Sub

它永远不会退出递归。异常说该文件正被其他进程使用,等待不会改变任何东西。 有线索吗?

[编辑] 更改了Sub,因此它不包含Exception处理程序中的递归

Private Sub delete_file(ByVal dir As String)
    Dim ok As Boolean = True
    Try
        If My.Computer.FileSystem.FileExists(dir) Then My.Computer.FileSystem.DeleteFile(dir)
    Catch ex As Exception
        Debug.WriteLine(ex.ToString())
        ok = False
    End Try

    If ok = False Then
        Sleep(1000)
        delete_file(dir)
    End If

End Sub

1 个答案:

答案 0 :(得分:0)

单词“另一个过程”非常模糊。

事实证明,我程序中的其他功能是两次打开同一个文件,只关闭一次。修复删除问题后删除的问题。

因此,如果您遇到相同的错误,请尝试在修改此文件时在程序中搜索其他位置。

感谢您的评论,他们肯定给了我一些关于良好编程的提示。