首页  编辑  

如何在NT/2000中删除一个正在使用的文件

Tags: /超级猛料/Stream.File.流、文件和目录/文件操作/   Date Created:

<> MoveFileEx <>  

这个函数允许我们对一个指定的文件或目录改名。但是如果我们在dwFlags中指定为TMOVEFILE_DELAY_UNTIL_REBOOT(仅对NT/2000有效),那么这次更动会在重启之后生效,系统会在重启之后删除或改改我们指定的文件。

用法:

MoveFileEx(ExistingFN, NewFN, MOVEFILE_REPLACE_EXISTING)

MoveFileEx(ExistingFN, NewFN, MOVEFILE_DELAY_UNTIL_REBOOT)

其中:

ExistingFN 为指定的文件或目录的路径。

NewFN 为新的文件或目录名。

标志 MOVEFILE_REPLACE_EXISTING 告诉函数如果文件或目录存在则改写它的名称。

如果 NewFN 设为 nil,那么则将其删除

例子:

移动文件:

MoveFileEx('c:\winnt\system32\kernel32.dll', 'd:\winnt.bak\system32\kernel32.dll',MOVEFILE_REPLACE_EXISTING);

MoveFileEx('c:\winnt\system32\kernel32.dll', 'd:\winnt.bak\system32\kernel32.dll',MOVEFILE_DELAY_UNTIL_REBOOT);  

删除文件:

MoveFileEx('c:winnt\system32\kernel32.dll', nil,MOVEFILE_REPLACE_EXISTING);

MoveFileEx('c:winnt\system32\kernel32.dll', nil,MOVEFILE_DELAY_UNTIL_REBOOT);