【问题标题】:How can I unlock a file that is locked by a process in .NET [duplicate]如何解锁被.NET中的进程锁定的文件[重复]
【发布时间】:2008-10-28 10:59:31
【问题描述】:

我希望我的应用程序清理它使用的所有临时文件,问题是并非所有临时文件都在我的控制之下,所以我只想“粗暴地”解锁它们以便以编程方式删除它们。

【问题讨论】:

  • 我不知道你的应用程序和你正在使用的文件,但是如果你使用 FileStream 来处理你的文件,你必须关闭 FileStream 并处理 FileStream 对象,然后你使用的文件(s) 将被解锁。

标签: c# temporary-files file-locking


【解决方案1】:

看看this的文章。我认为您将很难在 C# 中本地执行此操作,即使使用互操作,但编写 C++/CLI 包装程序集可能是一个很好的折衷方案。另请注意,用户需要拥有 SE_DEBUG 权限才能使其工作。

【讨论】:

  • 该文章中的 ForceDel.zip 文件(这是该答案的解决方案)不再可用......我也需要它! :(
  • 找到了!下载相同的here
【解决方案2】:

我也一直在为此苦苦挣扎,最后只好求助于 Unlocker 的命令行实现。就我而言,它必须每天运行多次,最终每天解锁数千个文件而没有任何问题。

【讨论】:

    【解决方案3】:

    当然,您的应用程序想要清理它拥有的临时文件,然后您可以完全控制解锁这些文件并删除它们!

    如果您要删除所有 TEMP 文件,无论是否属于您的应用程序,您都应该非常小心。原始应用程序可能应用了锁,因为它想使用该文件!

    如果您确实需要,您始终可以生成一个命令行应用程序,而不是尝试复制现有工具的功能,这在 C# 中会很困难。

    【讨论】:

    • 它们的文件是我的应用程序的一部分,但它们不是我的模块的一部分,出于政治原因,我无法修改该模块(并不是真的想了解这些细节 :-)),无论如何我知道粗暴地删除这些文件是安全的。
    【解决方案4】:

    在 MSDN 论坛上查看此 thread。有足够的信息来做你想做的事,但不推荐。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      • 2010-09-23
      • 1970-01-01
      • 2020-01-12
      相关资源
      最近更新 更多