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