使用windows API複製文件到指定目錄

 

不知道爲啥,在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;
    }
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章