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);  
    }
  • 相关阅读:
    第一个反汇编程序
    边缘网关协议(BGP)
    Servlet 学习小结之doPost()方法和doGet()方法
    extern "C"
    工欲善其事 必先利其器
    我是一个混蛋程序员
    KMP 算法——C
    二分查找——C语言
    大整数加法——C语言
    子字符串查找——C语言
  • 原文地址:https://www.cnblogs.com/yhood/p/11534881.html
Copyright © 2011-2022 走看看