有没有办法删除windows xp,ntfs文件系统下的文件,即使该文件有锁定?
遇到其他流程的问题,例如病毒扫描锁定文件我要移动/删除。
感谢任何提示!
答案 0 :(得分:4)
MoveFileEx允许您传递MOVEFILE_DELAY_UNTIL_REBOOT,这将导致您在下次重新启动时移动/删除文件。除此之外,您必须找到/杀死当前锁定文件的其他进程,这可能是不可能的,对于大多数程序来说几乎肯定不是理想的行为。
答案 1 :(得分:2)
如果在尝试删除文件时文件被锁定,则删除将失败。如果您需要删除该文件,则需要锁定它的任何内容以释放锁定。
这就是它的全部内容。这里没有捷径。
答案 2 :(得分:1)
如果我没记错,可以下载一个名为Open Handles的Microsoft程序,它可以告诉您锁定特定文件的进程。然后,您只需终止该进程并解锁文件,以便删除它。如果文件被核心操作系统进程锁定,则不起作用,但如果被病毒扫描程序锁定则应该正常工作。
我想如果您尝试以编程方式而不是手动方式执行此操作,则需要让程序调用oh.exe并相应地处理其输出。然后使用Windows API终止相关进程(据我所知,TerminateProcess
是相应的函数)并尝试再次删除该文件。
答案 3 :(得分:0)
如果您在继续操作之前绝对需要删除该文件,则可以执行以下操作:
#include <stdio.h>
...
while(remove("myfile.txt" ) != 0)
// Error deleting file. Wait a little before trying again.
Sleep(100);
循环后,您绝对确定该文件已成功删除 你可以使用一些“尝试计数器”来退出循环而不是永远等待;)