Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can i delete the file that has been navigated in a webbrowser control?

How can I delete the file that has been navigated in the webbrowser? Error says "It is being used by another process"

preview_wb.Navigate(@"C:\mypdf.pdf");

private void close_btn_Click(object sender, EventArgs e)
{
    preview_wb.Stop();
    File.Delete(@"C:\mypdf.pdf");
}
like image 886
Holyoxx Avatar asked Mar 31 '11 05:03

Holyoxx


1 Answers

Usually people suggest this code:

webBrowser.Navigate("about:blank");
while (webBrowser.ReadyState != WebBrowserReadyState.Complete)
    Application.DoEvents();

File.Delete(fileName);

I don't like it. I prefer to handle DocumentCompleted event.

void DeleteFile()
{    
    needToDeleteFile = true;
    webBrowser.Navigate("about:blank");
}

void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    if (needToDeleteFile)
    {
        File.Delete(fileName);
        needToDeleteFile = false;
    }
}
like image 102
Der_Meister Avatar answered Sep 28 '22 09:09

Der_Meister