zoukankan      html  css  js  c++  java
  • c# cef3 判断文件下载是否完成

    cef3 模拟浏览器,点击下载文件时,需要判断文件是否下载完成,来继续下一步操作。

    解决:重写 IDownloadHandler 接口

     class DownloadHandler : IDownloadHandler
        {
    
            public void OnBeforeDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
            {
                if (!callback.IsDisposed)
                {
                    using (callback)
                    {
                        DownCrawler.isDownload = false;   //标识置为false,表示正在下载
                        string fileLocation = downloadItem.SuggestedFileName.Substring(0, downloadItem.SuggestedFileName.IndexOf(".")); //文件路径
                        Debug.WriteLine(fileLocation);
                        callback.Continue(@"C:Downloadsone" +
                                downloadItem.SuggestedFileName,
                            showDialog: false); //设置文件存放路径
                    }
                }
            }
    
            public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
            {
                //如果下载完成
                if (downloadItem.IsComplete)
                {
                    Debug.WriteLine("下载完成");
                    DownCrawler.isDownload = true;  //标识置为true,表示下载完成
                }
            }
        }

    应用该重写接口

    browser.DownloadHandler = new DownloadHandler();

    然后在执行代码中 插入循环判断 下载标识 是否为true 

    while(!DownCrawler.isDownload){
      Thread.Sleep(2000);  
    }
  • 相关阅读:
    动态数据源切换
    Disconf实践指南:改造篇
    Disconf实践指南:使用篇
    Disconf实践指南:安装篇
    执行Git命令时出现各种 SSL certificate problem 的解决办法
    linux rz 乱码
    分布式配置项管理-开源方案预研究
    mac下mysql5.7.18修改root密码
    git 版本回滚
    关于@Autowired使用注意点
  • 原文地址:https://www.cnblogs.com/yhood/p/11534881.html
Copyright © 2011-2022 走看看