我运行了上述代码,两次都是成功的。

解决方案 »

  1.   

    汗,不会吧?
    我这里是调用第一次会失败,第二次也成功的阿..  很无语..
      

  2.   

    int nOk;
    char FilepathName[256];
    sprintf(FilepathName,"%s",(LPCTSTR)command.lparam);

    int   len=strlen(FilepathName);   
    FilepathName[len]='\0';                       
    FilepathName[len+1]='\0';

    SHFILEOPSTRUCT   shfileop; 
    shfileop.hwnd   =   NULL;   
    shfileop.wFunc   =   FO_DELETE   ;   
    shfileop.fFlags   =   FOF_SILENT   |   FOF_NOCONFIRMATION;   
    shfileop.pFrom   =   FilepathName;   
    shfileop.pTo   =   FilepathName;   
    shfileop.lpszProgressTitle   =   "";   
    shfileop.fAnyOperationsAborted   =   TRUE;   
    nOk = SHFileOperation(&shfileop); 
    if(nOk==0)
    {
    xx;  //成功
    }
    else
    {
    xx;  //失败
    }这个函数我刚开始用的时候也是郁闷了半天.变量就不成功.后面弄了好半天才弄懂.它最关键的地方是要把你的变量长度求出来.后后加一个\0,在把长度后面的位置再添加了个\0.我这是删除文件夹的.我想效果都一样的吧.没找到写的copy哪段.一定要记得变量后面有两个\0