winforms 如何将WebView2生成的文件移动到另一个位置?

6yoyoihd  于 2022-12-23  发布在  其他
关注(0)|答案(1)|浏览(277)

我想把WebView2生成的DLL和XML文件移到其他位置,我到处找这个问题,还是找不到解决办法。我甚至试过CoreWebView2Settings。我试过userDataFolder: currentPath + @"\bin"browserExecutableFolder: currentPath + @"\bin",但还是不行。我还想把runtimes[ExecutableName].exe.webView2文件夹移到定向文件夹中。
谢谢你的帮助。

s5a0g9ez

s5a0g9ez1#

使用filesavedialog怎么样?
使用DownloadStarting event与这,所以你可以选择这文件夹你想要保存
或者,您可以仅使用DownloadStarting的ResultFilePath属性

private bool? SaveWebFilePath(string filePath)
{
    try
    {
        string fileExt = System.IO.Path.GetExtension(filePath).ToString();
        int strLen = fileExt.Length;

        webSaveFilePath = null;
        SaveFileDialog dlg = new SaveFileDialog();
        dlg.FileName = System.IO.Path.GetFileName(filePath).ToString();
        dlg.Filter = fileExt.Substring(1, strLen-1) + "|*" + System.IO.Path.GetExtension(filePath).ToString();

        bool? result = dlg.ShowDialog();

        if (result == true)
        {
            webSaveFilePath = System.IO.Path.GetFullPath(dlg.FileName).ToString();
        }
        return result;
    }
    catch (Exception ex)
    {
        Trace.WriteLine(ex.Message);
    }
}
private void WebView2_DownloadStarting(object sender, Microsoft.Web.WebView2.Core.CoreWebView2DownloadStartingEventArgs e)
{
    Microsoft.Web.WebView2.Core.CoreWebView2Deferral deferral = e.GetDeferral();
    string filePath = e.DownloadOperation.ResultFilePath;
    bool? saveResult = getSaveWebFilePath(filePath);
        
    if (saveResult == null || saveResult == false)
    {
        e.DownloadOperation.Cancel();
        return;
    }
    System.Threading.SynchronizationContext.Current.Post((_) =>
    {
        using (deferral)
        {
            // Hide the default download dialog.
            e.Handled = true;
            e.ResultFilePath = webSaveFilePath;
        }
    }, null);
}

相关问题