0

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

我有这样的子

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,所以它在异常处理程序中不包含递归

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
4

1 回答 1

0

“另一个过程”这个词非常模棱两可。

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

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

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

于 2013-03-20T10:46:25.643 回答