如何强制删除 C/C++ 中的锁定文件?

Posted

技术标签:

【中文标题】如何强制删除 C/C++ 中的锁定文件?【英文标题】:How can I force the deletion of locked files in C/C++? 【发布时间】:2008-10-18 19:17:33 【问题描述】:

如何以编程方式强制删除被操作系统或任何其他 C/C++ 程序锁定的文件?功能应该类似于http://ccollomb.free.fr/unlocker的“Unlocker”软件。

【问题讨论】:

相关问题:***.com/questions/301174/… 【参考方案1】:

看this 示例。

【讨论】:

【参考方案2】:

如果您使用的是 Win32,官方的做法是将其标记为在重新启动时删除,并要求用户重新启动。要在重新启动时标记要删除的文件,请使用带有 MOVEFILE_DELAY_UNTIL_REBOOT 标志的 MoveFileEx(将 NULL 作为目标传递)。

【讨论】:

相关答案:***.com/questions/259253/…【参考方案3】:

这实际上取决于底层文件系统。

例如,在 Linux 上,ext3 支持不属于标准 unix 读/写/执行/用户/组/世界范式的文件属性。

There is a nice summary of the available attributes here:

我第一次遇到时真的让我发疯了,即使是 root,甚至在关闭 bottable CD 后,我仍然无法从硬盘驱动器中删除文件......顺便说一句,创造性使用的可能性这个恶作剧几乎是无穷无尽的...... :)

【讨论】:

这与属性无关。它关于使用锁定文件的正在运行的进程。唯一的办法就是杀死进程

以上是关于如何强制删除 C/C++ 中的锁定文件?的主要内容,如果未能解决你的问题,请参考以下文章

TFS强制删除离职人员签出锁定项的方法(转)

Data如何删除?

如何用cmd命令强制删除文件夹?

如何删除从 TFS 中删除的成员完成的锁定

如何强制删除 S3 存储桶中的所有对象版本,然后最终使用 aws-sdk-go 删除整个存储桶?

vmware-vmx.exe进程应该怎么杀掉