使用WinForms的WebView2控件以编程方式指定不同文件类型的下载位置



在通过WebView2控件下载特定文件类型时,有人知道如何为其指定下载位置吗?

示例:

PDF文件进入D:PDF,Excel文件进入D:Excel

您可以处理DownloadStarting事件以拦截下载,并根据下载对象的MimeType在事件args上设置ResultFilePath。下载对象也通过事件args来访问。

据我所知,你只能在程序化使用WebClient时指定下载位置,它只能从特定的url下载,例如

WebClient WB = new WebClient();
WB.DownloadFile("http://example.com/example.txt", @"d:example.txt");

WebView是一个基于chrome的WebBrowser控件,除非您直接修改它(源代码(,否则它将像web浏览器一样工作。

因此,要回答您的问题,无法使用WebView2控件为特定文件类型指定下载位置。

但是,您可以自己构建一个下载器,使用C#中的WebClient将文件从url下载到特定位置。

您必须订阅CoreWebView2InitializationCompleted事件,或者您也可以在表单的构造函数中处理该事件

public Form1()
{
InitializeComponent();
webView2.CoreWebView2InitializationCompleted += webView2_CoreWebView2InitializationCompleted;                
}

webView2.CoreWebView2.Profile的DefaultDownloadFolderPath属性更改为所需路径。

private void webView2_CoreWebView2InitializationCompleted(object sender, CoreWebView2InitializationCompletedEventArgs e)
{
string folderName = (savingPDF)? "PDF":(savingExcel)?"Excel":"Other";
webView.CoreWebView2.Profile.DefaultDownloadFolderPath = "C:\" + folderName;
}

请注意,如果目录还不存在,则会创建该目录(具有足够的权限(。

最新更新