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
它永不熄滅的遞歸子。異常表示該文件正在被其他進程使用,並且等待不會改變任何內容。 任何線索?
[編輯] 改變子位,所以它不包含在遞歸異常處理程序
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
這可能是一個選項,您可以在文本編輯器中設置該選項,以便在寫入或讀取文件時僅處理該文件。 – 2013-03-18 17:35:10
此外,調用delete_file()從異常處理程序內是一個_really_壞主意。也許改變代碼來通過Timer再次觸發任務? – 2013-03-18 17:36:55
文本編輯器就是一個例子。如果其他程序(自動)編輯此文件,則會出現相同的情況。 – 2013-03-18 18:04:22