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
我在 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