如何删除在浏览器中浏览过的文件? 错误说:“这是正在被另一个进程使用”如何删除在浏览器控件中导航的文件?
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