VB.net WebBrowser 正在锁定 Office 文件以防止删除

VB.net WebBrowser is Locking Office Files Preventing Deletion

我在 webBrowser 控件中显示 pdf 和 office 文档。这些文件存储在一个 zip 文件中,并在它们显示在网络浏览器中之前解压缩到应用程序目录。当应用程序关闭时,我想删除任何已提取的文件以清理应用程序目录。

当用户显示文件时,我将浏览器添加到列表中以跟踪打开的内容。当应用程序关闭时,我想释放对打开文件的任何引用,以下适用于 pdf 但不适用于 office 文件:

  Private OpenedFiles As New List(Of WebBrowser)

添加浏览器:

  Dim browser As WebBrowser
  browser.Navigate(FilePath)
  OpenedFiles.Add(browser)

表单关闭事件:

  For Each myBrowser As WebBrowser In OpenedFiles 
      myBrowser.DocumentText = ""
      myBrowser.Navigate("about:blank")
  Next

执行此代码后,可以删除任何打开的 pdf,但不能删除任何办公文件,并且办公应用程序会保留在任务管理器中 运行。

有人可以建议我如何关闭然后删除 office 文件。

谢谢

WebBrowser 控件实现了 IDisposable,因此您应该在表单关闭时对每个控件调用 .Dispose。那应该清理资源和文件句柄:

For Each myBrowser As WebBrowser In OpenedFiles 
   myBrowser.Dispose()
Next