如何刪除在瀏覽器中瀏覽過的文件? 錯誤說:「這是正在被另一個進程使用」如何刪除在瀏覽器控件中導航的文件?
preview_wb.Navigate(@"C:\mypdf.pdf");
private void close_btn_Click(object sender, EventArgs e)
{
preview_wb.Stop();
File.Delete(@"C:\mypdf.pdf");
}
如何刪除在瀏覽器中瀏覽過的文件? 錯誤說:「這是正在被另一個進程使用」如何刪除在瀏覽器控件中導航的文件?
preview_wb.Navigate(@"C:\mypdf.pdf");
private void close_btn_Click(object sender, EventArgs e)
{
preview_wb.Stop();
File.Delete(@"C:\mypdf.pdf");
}
如果您需要的「預覽」堅持該文件已被刪除後,你可能沒有任何選擇,但要複製的文件和導航而不是複製。
如果你感到快樂,清除了「預覽」當文件刪除,只是從它第一導航離去:
private void close_btn_Click(object sender, EventArgs e)
{
preview_wb.Navigate("about:blank");
File.Delete(@"C:\mypdf.pdf");
}
這應該做的伎倆。
您是否嘗試過通過Internet Explorer緩存(使用FindFirst/NextUrlCacheEntry API)找到該文件並使用DeleteUrlCacheEntry將其刪除?有預先寫好的例子說明如何循環,並在新的,只是谷歌它刪除。
您將獲得3種類型的緩存,以「Cookie:」開頭,另一個以「Visited:」開頭 - 僅代表訪問過的網站列表(這不是歷史,不要混淆兩者) ,最後一個類型只是以http://或https://開始的url形式出現。一旦循環完成,您可以選擇並選擇要刪除的部分。
讓我知道如果您有任何進一步的問題,這樣做應該擺脫「正在使用的文件」問題,如果它不,也可以在執行緩存刪除之前暫停或卸載您的瀏覽器控件。你可能不需要)。
通常人們認爲這樣的代碼:
webBrowser.Navigate("about:blank");
while (webBrowser.ReadyState != WebBrowserReadyState.Complete)
Application.DoEvents();
File.Delete(fileName);
我不喜歡它。我更喜歡處理DocumentCompleted事件。
void DeleteFile()
{
needToDeleteFile = true;
webBrowser.Navigate("about:blank");
}
void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (needToDeleteFile)
{
File.Delete(fileName);
needToDeleteFile = false;
}
}
沒有工作,它仍然被另一個進程使用。如何殺死「AcroRd32.exe」進程? – Holyoxx 2011-03-31 05:37:07
哎。這很煩人。有這樣一個過程嗎?我不知道Acrobat如何在瀏覽器中工作。它是一個實際的exe或一個ActiveX控件? – 2011-03-31 06:31:36
是它的一個實際的exe。我也殺了所有與雜技演員有關的過程。仍然沒有工作。 – Holyoxx 2011-03-31 06:53:24