我有一个检查文件是否存在的函数(返回 file.exists(file))。如果它不存在,那么我会显示一条带有选项 Abort、Retry、Ignore 的错误消息。
我的问题是我无法让它重试。
我尝试将代码放在一个单独的函数中检查文件是否存在,然后从 select case 语句的重试案例中调用该函数,但它似乎正好过去了(因为它已经知道它不存在? ) 我尝试创建一个单独的类,其中包含检查文件是否存在的函数,然后每次调用它时都创建该类的新实例,但这没有帮助。
我错过了什么吗?
我希望应用程序在每次用户单击重试时再次检查,直到他们按下中止或忽略(或者当然它确实找到了文件。
处理重试的正确方法是什么?
Private Sub main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If CheckFileExists() Then
'do stuff here
End If
End Sub
Private Function CheckFileExists()
If Not FindFile() Then
Select Case MessageBox.Show("Can't Find File", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Error)
Case Windows.Forms.DialogResult.Abort
End
Case Windows.Forms.DialogResult.Retry
Return FindFile()
Case Windows.Forms.DialogResult.Ignore
MessageBox.Show("Proceeding without file present")
'do some other stuff
Return True
Case Else
Return False
End Select
Else
Return True
End If
End Function
Private Function FindFile() As Boolean
Return System.IO.File.Exist(path\file.ext)
End Function
我也试过把它放到一个类中:
Private Function FindFile() As Boolean
Dim fc As New FileCheck
If Not fc.fnFileCheck() Then
Return False
Else
Return True
End If
End Function
Public Class FileCheck
Public Function fnFileCheck() As Boolean
Return System.IO.File.Exist(path\file.ext)
End Function
End Class