CefSharp로 웹 사이트 용 작은 다운로더 도구를 만들려고합니다. 파일을 다운로드하려면 CefSharp의 꽤 좋은 예제 인 DownloadHandler를 사용합니다. 이제 다운로드가 끝나면 몇 가지 작업을 수행하려고합니다. "downloadItem"의 값은 "IsComplete"입니다. 내가 방법 "이을 OnDownloadUpdated"는이 같은 것을 넣어하지만, 물건은 내 다운로드 항목이 완료되었는지 확인해야 할 경우 내 질문입니다, 그래서 CefSharp에서 다운로드를 완료하십시오.
if (downloadItem.IsComplete) {
//do stuff
}
실행되지 않습니다?
편집 : 전체 DownloadHandler : 당신은 OnDownloadUpdated
방법 내부를 확인해야
public class DownloadHandler : IDownloadHandler {
public event EventHandler<DownloadItem> OnBeforeDownloadFired;
public event EventHandler<DownloadItem> OnDownloadUpdatedFired;
private bool stop;
private DownloadWindow window;
public void OnBeforeDownload(IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback) {
var handler = OnBeforeDownloadFired;
if (handler != null) {
handler(this, downloadItem);
}
if (!callback.IsDisposed) {
using (callback) {
callback.Continue(downloadItem.SuggestedFileName, showDialog: true);
}
}
window = new DownloadWindow(downloadItem.TotalBytes, downloadItem.SuggestedFileName, this);
window.Show();
}
public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback) {
var handler = OnDownloadUpdatedFired;
if (handler != null) {
handler(this, downloadItem);
}
if (window != null) {
window.UpdateProgress(downloadItem.ReceivedBytes);
}
if (stop) {
callback.Cancel();
}
}
public void StopDownload() {
stop = true;
}
}
전체'DownloadHandler'를 (를) 공유 할 수 있습니까? –
@ NicolasZawada 예, 그랬어요 – Mirco