有没有办法删除FILE_FLAG_DELETE_ON_CLOSE?

时间:2010-08-29 06:24:06

标签: file winapi

在我的应用程序中,我想用FILE_FLAG_DELETE_ON_CLOSE打开一个临时文件。但是在某些情况下,临时文件需要保存并且非常大

我想在打开的句柄上删除FILE_FLAG_DELETE_ON_CLOSE属性?这可能吗?复制文件的内容或重命名不是我想要的,我想删除该属性。这是由于我如何处理一些写入,在我的应用程序中关闭句柄将打开我的竞争条件

2 个答案:

答案 0 :(得分:5)

你可以反过来做。 首先打开文件,指定FILE_SHARE_DELETE。 然后,当您需要关闭文件时,使用FILE_DELETE_ON_CLOSE再次打开它,然后关闭两个句柄。或者,只需关闭它,它就不会被删除。

答案 1 :(得分:2)

不,一旦你完成了创作,就不可能。一个危险的想法可能从语句开始,“该标志仅与链接打开的句柄相关。”因此,创建新链接可能会“修复”它。我没想过这个超过五秒钟,但这是午夜时分给我的唯一一点点聪明的东西。