首页 > 解决方案 > 如何安全地杀死 robocopy 进程

问题描述

我有一个 win32 应用程序,我正在为一些文件传输启动一个 robocopy 子进程。如果我使用 TerminateProcess 终止进程,是否有可能以损坏的文件结束?如果是这样如何避免这种情况?

标签: winapirobocopy

解决方案


TerminateProcess函数,

TerminateProcess 函数用于无条件地导致进程退出。如果使用 TerminateProcess 而不是 ExitProcess,则动态链接库 (DLL) 维护的全局数据的状态可能会受到影响。

请记住,TerminateProcess不允许其目标清理并以有效状态退出。

尝试干净地关闭进程,参考下面的链接,

如果 robocopy 进程终止,被复制的文件将具有 (a) 1980-01-01 (b) 与原始文件大小相同的时间戳。

然后再次使用 robocopy 在命令行中复制带有时间戳的文件。

参考:如何在命令行中使用 Robocopy 复制带有时间戳的文件


推荐阅读