c# cef3 判断文件下载是否完成

拈花ヽ惹草 提交于 2019-11-29 21:40:44

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:\Downloads\one\" +
                            downloadItem.SuggestedFileName,
                        showDialog: false); //设置文件存放路径
                }
            }
        }

        public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
        {
            //如果下载完成
            if (downloadItem.IsComplete)
            {
                Debug.WriteLine("下载完成");
                DownCrawler.isDownload = true;  //标识置为true,表示下载完成
            }
        }
    }

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

while(!DownCrawler.isDownload){
  Thread.Sleep(2000);  
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!