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

时间:2008-10-18 19:17:33

标签: c++ c

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

3 个答案:

答案 0 :(得分:5)

查看this示例。

答案 1 :(得分:4)

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

答案 2 :(得分:1)

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

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

There is a nice summary of the available attributes here:

第一次碰到我时真的让我抓狂,甚至以root为基础,甚至在重新启动可用的CD之后我还是无法删除我的硬盘驱动器上的文件...顺便说一句,创造性地使用的可能性这对于实用的笑话几乎无穷无尽......:)