该标志一般由安装程序使用,比如你想安装新的驱动程序时,由于旧的驱动程序仍被系统使用而无法删除或覆盖它。在这种情况下,安装程序可以把新的驱动程序拷贝到一个临时的目录中,然后用MOVEFILE_DELAY_UNTIL_REBOOT标志调用MoveFileEx,。当系统重启后,系统就在启动之前用新的驱动程序代替旧的驱动程序。因为该标志可以用来在重启后覆盖一个文件。
它还可以在重启后删除一个文件,当要删除的文件由于被系统使用而无法删除时,可以用此方法。如:MoveFileEx(szDstFile, NULL, MOVEFILE_DELAY_UNTIL_REBOOT);
但Windows95/98不支持 MoveFileEx 函数,为了在重启后重命名或删除一个文件,可以这样处理:
1、 在Windows目录下检查 Wininit.ini 文件是否存在;
2、 如果Wininit.ini 文件存在,打开并添加新的项到[rename]字段中。如果文件不存在,则创建文件,并创建[rename]字段。
3、 按下面的格式添加:
DestinationFileName=SourceFileName
这两个值都必需用短文件名,NUL=DestinationFileName 可以用来删除一个文件。
本文介绍了如何利用MOVEFILE_DELAY_UNTIL_REBOOT标志通过MoveFileEx函数实现在系统重启后更新或删除被系统占用无法直接操作的文件。此外还提供了一个适用于Windows 95/98的方法,通过修改Wininit.ini文件实现类似功能。
1866

被折叠的 条评论
为什么被折叠?



