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:\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,表示下載完成
            }
        }
    }

應用該重寫接口

browser.DownloadHandler = new DownloadHandler();

 

然后在執行代碼中 插入循環判斷 下載標識 是否為true 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM