【发布时间】:2010-12-01 22:55:34
【问题描述】:
出于测试和模拟目的,我想删除我的进程当前打开的文件。
CreateFile docs 表示可以在模式 (FILE_SHARE_DELETE) 中打开文件,该模式允许打开句柄指向的文件被其他操作删除。 (而且我已经通过 CreateFile(FILE_SHARE_DELETE) + DeleteFile 尝试并确认了这一点。)
我现在想知道的是,是否有可能以某种方式删除没有上述标志的任何人打开的文件?
据我了解DeleteFile docs 无法使用此功能,因为
如果应用程序尝试删除打开的文件,DeleteFile 函数将失败 用于普通 I/O 或作为内存映射文件。
是否有任何其他方法可以删除已打开但未设置 FILE_SHARE_DELETE 标志的文件?
【问题讨论】:
-
在某些情况下可以重命名。这在您想要升级/替换它时很有用