none
SHFileOperation 复制文件的问题 RRS feed

  • 问题

  • 下面的代码是关于同步文件夹的函数,当源文件夹里面的文件比目标文件夹里面的文件旧的时候,希望不要覆盖目标文件夹下面的文件,不知道怎么修改fFlags标致

    BOOL CFoldercopyDlg::CopyFolder(CString strsource, CString strdest)
    {
     SHFILEOPSTRUCT sfo;
     
     char szSource[MAX_PATH];
     char szDest[MAX_PATH];
     
     lstrcpy(szSource,strsource);
     lstrcpy(szDest,strdest);
        szSource[lstrlen(szSource)+1]=0;
     szDest[lstrlen(szDest)+1]=0;
     
     sfo.hwnd=NULL;
     sfo.wFunc=FO_COPY;
     sfo.pFrom=(LPCSTR)szSource;
     sfo.pTo=(LPCSTR) szDest;
     sfo.fFlags=FOF_NOCONFIRMATION |FOF_SIMPLEPROGRESS |FOF_NOCONFIRMMKDIR |FOF_MULTIDESTFILES ;
     // sfo.fAnyOperationsAborted=FALSE;
     sfo.hNameMappings=0;
     sfo.lpszProgressTitle="foldercopy!";
     
     int res =SHFileOperation(&sfo);
     
     return res;
    }


    2012年8月20日 5:27

答案

  • 这个估计您得自己使用CFileFind类的FindFile/FileNextFile遍历文件,CFileFind类GetCreationTime / <link keywords="1943CA28-4193-489C-A07C-31A07B20D17F" tabIndex="0" /><link keywords="2090CBE7-D043-4DE0-B7D7-BDDCA832A886" tabIndex="0" /> 来得到文件的相关属性信息,然后比对,来判断是否CopyFile()到新目标目录下。

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2012年8月21日 8:46
    版主

全部回复

  • 希望不要覆盖目标文件夹下面的文件?什么意思?

    只复制文件夹里面内容不复制?这应该不是原API的目的吧。


    Please not forget mark your answer, and unmark your disagreed point.

    2012年8月21日 6:11
  • 这个估计您得自己使用CFileFind类的FindFile/FileNextFile遍历文件,CFileFind类GetCreationTime / <link keywords="1943CA28-4193-489C-A07C-31A07B20D17F" tabIndex="0" /><link keywords="2090CBE7-D043-4DE0-B7D7-BDDCA832A886" tabIndex="0" /> 来得到文件的相关属性信息,然后比对,来判断是否CopyFile()到新目标目录下。

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2012年8月21日 8:46
    版主
  • 这个估计您得自己使用CFileFind类的FindFile/FileNextFile遍历文件,CFileFind类GetCreationTime / <link keywords="1943CA28-4193-489C-A07C-31A07B20D17F" tabIndex="0" /><link keywords="2090CBE7-D043-4DE0-B7D7-BDDCA832A886" tabIndex="0" /> 来得到文件的相关属性信息,然后比对,来判断是否CopyFile()到新目标目录下。

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.


    正是这个意思
    2012年8月22日 2:50
  • windows系统里面有同步文件夹的API吗? 手机同步软件是不是就是调用XP里的API?
    2012年8月22日 2:52
  • sfo.
    2012年8月22日 10:29
  • 百度不到sfo.
    2012年8月24日 1:32