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);  
    }
  • 相关阅读:
    MySQL根据某一个或者多个字段查找重复数据的sql语句
    常见面试题
    技术总监工作内容
    分布式锁三种实现
    完美解决github访问速度慢
    细说Redis
    Mysql学习的核心问题
    Java反射细说
    Spring中的常见的9种设计模式
    Mybatis相关问题
  • 原文地址:https://www.cnblogs.com/yhood/p/11534881.html
Copyright © 2011-2022 走看看