ファイルをダウンロードするプログラム (簡易ファイル アップデーター) があります。その前に、このファイルの古いバージョンが削除のためにキューに入れられます。しかし、このファイルをテキスト エディタなどで編集 (保存して閉じる) すると、プログラムはファイルの削除を拒否します。
私はこのようなサブを持っています
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