文件.移动和网络浏览器

本文关键字:浏览器 网络 移动 文件 | 更新日期: 2023-09-27 18:13:55

c# - TIA相对较新,请提供帮助。

用webBrowser构建窗口应用。使用browser.Navigate("myfilestring")获取本地文件(PDF格式)。在查看文件之后,我希望有一个方法将文件从一个目录File.Move()到另一个目录。我遇到的问题是,移动返回一个IO异常,说明文件操作不能执行,因为文件正在被另一个进程使用。

在调用Move之前,I browser.Navigate("someotherfilestring")希望释放原始文件上的'file in use'锁…不帮助。

我还在Move周围放置了一个递归的try/catch,并在catch中放置了thread.sleep(50),进一步希望这只是一个时间问题……也没有帮助。

然而,如果我在catch中放入MessageBox.Show() - IO异常捕获一次-显示消息框,然后点击OK按钮具有解除文件繁忙的效果,以允许File.Move()操作继续进行。我不想让这个对话框弹出作为解决方案。

关于我如何以编程方式解除文件的繁忙以允许File.Move()操作继续进行的任何提示?

再次感谢。

文件.移动和网络浏览器

我建议你用这样一种方式来构建你的程序,你可以避免所有的问题:

  • 导航到文件时,首先使用File.Copy()将文件复制到具有唯一文件名的临时位置。
  • 导航到临时文件
  • 当你去做File.Move(),一切都应该工作得很好,因为它现在是临时文件被锁定,而不是原来的文件。