2014-02-27 52 views
1

例如,我如何使用“如果”下载无法完成或已取消下载VB.NET

My.Computer.Network.DownloadFile("https://dl.dropboxusercontent.com/u/71476794/Afterformatresources/vlc-2.1.2-win32.exe", "c:\Downloads\vlc.exe", "", "", True, 90, True, FileIO.UICancelOption.DoNothing) 
    Process.Start("C:\Downloads\vlc.exe") 

我想取消激活“的Process.Start”命令,如果下载coudn't完成或取消由于NSIS错误而成为用户。

enter image description here

+1

如果你使用'FileIO.UICancelOption.DoNothing',什么都不会发生上取消,也正常,如果下载失败你会得到一个TimeoutException(如果设置了超时)或取消结果 – MrPaulch

+0

它不工作对于某些“.exe”文件。我将添加关于NSIS错误的新图片。 – ArdaZeytin

回答

2

使用尝试捕捉

Try 
    My.Computer.Network.DownloadFile("https://dl.dropboxusercontent.com/u/71476794/Afterformatresources/vlc-2.1.2-win32.exe", "c:\Downloads\vlc.exe", "", "", True, 90, True, FileIO.UICancelOption.DoNothing) 
    Process.Start("C:\Downloads\vlc.exe") 

Catch ex as Exception 
    'Exception caught. ex.message will contain some information 
    'Handle error with messagebox or other means 

Finally 
    'Optional for code that will run whether Try was successful or not 

End Try 
+0

它工作完美!谢谢。 – ArdaZeytin

+1

不客气......使用Try Catch是一种很好的做法,只要您有可能会有例外。请注意,如果您没有使用'Finally'子句,请将其从try catch完全移除。 – Mych

0

有一个工作的例子。我认为如果有人搜索这个问题会很有帮助。

Private Sub btnvlc_Click(sender As Object, e As EventArgs) Handles btnvlc.Click 
    Try 
     My.Computer.Network.DownloadFile("https://dl.dropboxusercontent.com/u/71476794/Afterformatresources/vlc-2.1.2-win32.exe", "c:\Downloads\vlc.exe", "", "", True, 90, True, FileIO.UICancelOption.ThrowException) 
     Process.Start("C:\Downloads\vlc.exe") 
    Catch ex As Exception 
     MsgBox("Download expection occurred:" & vbCrLf & ex.Message) 
    End Try 
End Sub 
相关问题