不知道爲啥,在string後面必須要加 '\0';不然,有的 複製成功,有的 複製失敗
string sFrom = currTemplatePart->GetPartPath() + currTemplatePart->GetpPartMain()->GetPartName();
sFrom += "\\*.*";
sFrom += '\0';
iDirection += '\0';
SHFILEOPSTRUCTA s = { 0 };
ZeroMemory(&s, sizeof(SHFILEOPSTRUCT));
s.hwnd = NULL;
s.wFunc = FO_COPY; // 複製
s.fFlags = FOF_NO_UI; // 不顯示UI
s.pFrom = sFrom.c_str(); //必須有額外的'\0'結尾
s.pTo = iDirection.c_str(); //必須有額外的'\0'結尾
if (int iRet = SHFileOperationA(&s))
{
UF_print_syslog("複製失敗!", true);
}
std::string sfrom= "D:\\python\\";
std::string iDirection = "D:\\1111111";
//sfrom.push_back('\0');
//iDirection.push_back('\0');
SHFILEOPSTRUCTA s = { 0 };
ZeroMemory(&s, sizeof(SHFILEOPSTRUCT));
s.hwnd = NULL;
s.wFunc = FO_COPY; // // 複製
s.fFlags = FOF_NO_UI; // // 不顯示UI
s.pFrom = sfrom.c_str(); // //必須有額外的'\0'結尾
s.pTo = iDirection.c_str(); // //必須有額外的'\0'結尾
if(int iRet = SHFileOperationA(&s))
{
cout<<"複製失敗"<<endl;
}