我需要从旧的Samba服务器下载文件,然后删除它们。 为了删除这些文件,对于每个下载的文件,我使用命令:
smbclient ... -c "cd <destination folder>; rm <filename>"
使用system()
功能。
总的来说,这很有效,但Samba服务器经常无法执行命令,直到现在我看到了3种错误消息:
还有一些没有错误消息但是文件没有被删除的情况,甚至在它回复"NT_STATUS_OK removing remote directory file ..."
时仍然被删除2次但是之后目录仍在那里,而它通常不会发送此消息
有没有办法检测它何时失败并重做命令?或者更可靠的方法来删除这些文件?
编辑:smbclient ... -c "cd <destination folder>; recurse; prompt; rm <filename>"
编辑2:我尝试用exec函数执行命令并用WEXITSTATUS检查退出值,每次都得1;