我无法使用以下代码在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
...错误在哪里?
最佳答案
解决了...path
变量实际上不是双空终止的,因为我使用的wcscpy_s
在空字符后填充了字符串缓冲区(我以前用零填充)with the 0xFD value。
关于winapi - 无法使用SHFileOperation删除文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4180351/