我无法使用以下代码删除Windows中的文件夹:
SHFILEOPSTRUCT shfo = {
NULL,
FO_DELETE,
path,
NULL,
FOF_SILENT | FOF_NOERRORUI | FOF_NOCONFIRMATION,
FALSE,
NULL,
NULL };
SHFileOperation(&shfo);
我需要使用SHFileOperation
代替RemoveDirectory
,因为我需要删除非空文件夹。
但是,即使path
中的值指向一个完全控制Everyone用户的空本地文件夹,该函数也会失败,是双空终止(由documentation请求),没有系统,隐藏或只读属性...
不幸的是,该函数不返回错误代码(如果成功则返回零,否则返回非零)并且调用GetLastError
返回ERROR_SUCCESS
...
错误在哪里?
答案 0 :(得分:11)
path
变量实际上并没有被双重终止,因为我使用了wcscpy_s
来填充字符串缓冲区(我以前用零填充了零){null}之后的with the 0xFD value。 ..