DownloadFile方法用于通过代码主动下载文件。
语法:
DownLoadFile(url, fileName)
url:要下载文件的URL
fileName:指定存储文件名,可以包含路径,如果不包含,就存储在默认目录。
需要注意的是:
1、用DownLoadFile下载文件,一样会触发DownloadStarting、DownloadStateChanged和DownloadProgressChanged事件。
2、虽然可以通过fieName自定存储路径和文件名,但最终的文件名可能有变化,可以通过DownloadTaskAsync函数或DownloadStateChanged事件获得真实的文件名。
示例
窗口的AfterLoad事件代码如下,用于打开微信下载页面:
'''Async
Dim
wv
As
WebViewer = e.Form.Controls("WebViewer1").WebViewer
Await
wv.EnsureCoreWebView2Async(Nothing)
wv.CoreWebView2.Navigate("https://pc.weixin.qq.com/")
添加一个按钮,用于下载微信:
Dim
wv
As
WebViewer = e.Form.Controls("WebViewer1").WebViewer
wv.DownLoadFile("https://dldir1v6.qq.com/weixin/Universal/Windows/WeChatWin_4.1.11.exe",
"c:\temp\wechat.exe")
可以通过DownloadTaskAsync函数或DownloadStateChanged事件获取最终下载结果,例如:
'''Async
Dim
wv
As
WebViewer = e.Form.Controls("WebViewer1").WebViewer
wv.DownLoadFile("https://dldir1v6.qq.com/weixin/Universal/Windows/WeChatWin_4.1.11.exe",
"c:\temp\wechat.exe")
Dim
downop
As
CoreWebView2DownloadOperation =
Await
wv.DownloadTaskAsync(600)
'等候10分钟
If
downop
Is
Nothing
Then
'如果返回Nothing,表明下载根本没有启动,可能是服务器故障、链接错误或断网
MessageBoxA.Show("下载启动失败")
ElseIf
downop.State = CoreWebView2DownloadState.Completed
Then
Dim
str
As
String
=
"url来源:"
& downop.Uri & vbCrLf
str = str &
"存储路径:"
& downop.ResultFilePath & vbCrLf
str = str &
"文件大小:"
& downop.TotalBytesToReceive
MessageBox.Show(str,"下载成功")
ElseIf
downop.State = Microsoft.Web.WebView2.Core.CoreWebView2DownloadState.Interrupted
Then
MessageBoxA.Show("下载失败")
ElseIf
downop.State = Microsoft.Web.WebView2.Core.CoreWebView2DownloadState.InProgress
Then
downop.Cancel()
'取消下载,可选,如果不执行Cancel取消,则超时后会继续下载,最终可通过StateChanged事件获取状态
MessageBoxA.Show("下载超时")
End
If
提示: DownLoadFile和DownloadTaskAsync两个函数之间,不应该有其他代码。