如何解锁由.NET中的进程锁定的文件

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

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

我也在努力解决这个问题,最终只是出现了Unlocker的命令行实现。 在我的情况下,它必须每天运行多次,最终每天解锁数千个文件,没有任何问题。

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

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

如果你真的需要,你可以总是生成一个命令行应用程序,而不是试图复制现有工具的function,这在C#中很难实现。

在MSDN论坛上查看此主题 。 有足够的信息可以做你想要的,但不推荐。