【问题标题】:Close file left open vb.net?关闭文件打开 vb.net?
【发布时间】:2018-11-28 10:41:47
【问题描述】:

你好,最近怎么样?! 我正在寻找一种方法来关闭/解锁/重命名进程正在使用的文件,而不会在 vb.net 中杀死该进程?!

示例:我需要更新一些可能在我开始更新时使用的 .bpl。为此,我尝试删除文件或移动它(或任何允许我将新的 .bpl 放入文件夹的方法)。

很明显,如果该文件正在使用中,我会收到一个异常,指出对该文件的访问被拒绝,因为该文件正在被另一个进程使用。 假设我无法关闭整个过程,有没有办法从 vb.net 而不是使用 Handle.exe 来实现它?

【问题讨论】:

  • 尝试在不锁定文件的情况下读/写文件。 stackoverflow.com/questions/3448230/…
  • 如果是您的应用程序锁定了文件:是的,请参阅上面的链接。如果它是锁定文件的外部应用程序:不太可能没有 handle.exe,因为您必须重新发明其执行此操作的方式,这需要相当多的 P/Invoking。

标签: vb.net file process file-management


【解决方案1】:

经过多次尝试,我意识到 Windows 不允许您关闭(或执行任何其他任务)实际上被另一个进程锁定的文件。突然间,我想起了一个影响服务 .exe(如 service_name.exe 文件)的奇怪行为。

我正在谈论的行为涉及重命名文件的机会,即使该文件正在被另一个进程使用。我发现您可以将相同的概念应用于某些文件,例如 .bpl 文件,因此这是解决方案。

真的希望对你有帮助,谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-26
    • 2015-01-11
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 2012-09-23
    相关资源
    最近更新 更多