如何实现把一个文件夹及里面的文件一起拷贝到指定的路径目录下.

时间:2022-04-14 12:24:06
如何实现把一个文件夹及里面的文件一起拷贝到指定的路径目录下.如果指定目录下文件夹已经存在,不执行该操作.

7 个解决方案

#1


SHFileOperation
用法参考MSDN

#2


char pFrom[256]; 
memset(pFrom, 0x00, 256); 
strcpy(pFrom, path); // 第一个文件 

// CString stempto = "c:\\note";
char pTo[256]; 
memset(pTo, 0x00, 256); 
strcpy(pTo, newpath); // 第一个文件 
SHFILEOPSTRUCT   sfo;   
sfo.hwnd   =   NULL;   
sfo.wFunc   =   FO_COPY;   
sfo.pFrom   =   pFrom;
sfo.pTo   =  pTo ;     
sfo.fFlags   =   FOF_SILENT   |   FOF_NOCONFIRMATION   |   FOF_NOCONFIRMMKDIR;   

SHFileOperation(&sfo);

#3


为什么fFlangs设为FOF_NOCONFIRMMKDIR ;还是会覆盖原先的文件.

#4


学习一下

#5


·FOF_NOCONFIRMATION:在出现目标文件已存在的时候,如果不设置此项,则它会出现确认是否覆盖的对话框,设置此项则自动确认,进行覆盖,不出现对话框。

#6


BOOL CopyFile(
  LPCTSTR lpExistingFileName, // 源文件名
  LPCTSTR lpNewFileName,      // 目标文件名
  BOOL bFailIfExists          // 在目标文件存在时是否覆盖该文件
);
BOOL CopyFileEx(
  LPCTSTR lpExistingFileName,           // 源文件名
  LPCTSTR lpNewFileName,                // 目标文件名
  LPPROGRESS_ROUTINE lpProgressRoutine, // 回调函数
  LPVOID lpData,                        // 传递给回调函数的参数
  LPBOOL pbCancel,                      // 取消参数,如果在执行过程中将这个变量设为FALSE拷贝过程将会取消
  DWORD dwCopyFlags                     // 拷贝参数
);

其中CopyFileEx可以提供一个回调函数,并且在拷贝过程中CopyFileEx会调用这个回调函数。

#7


谢谢了!定一个

#1


SHFileOperation
用法参考MSDN

#2


char pFrom[256]; 
memset(pFrom, 0x00, 256); 
strcpy(pFrom, path); // 第一个文件 

// CString stempto = "c:\\note";
char pTo[256]; 
memset(pTo, 0x00, 256); 
strcpy(pTo, newpath); // 第一个文件 
SHFILEOPSTRUCT   sfo;   
sfo.hwnd   =   NULL;   
sfo.wFunc   =   FO_COPY;   
sfo.pFrom   =   pFrom;
sfo.pTo   =  pTo ;     
sfo.fFlags   =   FOF_SILENT   |   FOF_NOCONFIRMATION   |   FOF_NOCONFIRMMKDIR;   

SHFileOperation(&sfo);

#3


为什么fFlangs设为FOF_NOCONFIRMMKDIR ;还是会覆盖原先的文件.

#4


学习一下

#5


·FOF_NOCONFIRMATION:在出现目标文件已存在的时候,如果不设置此项,则它会出现确认是否覆盖的对话框,设置此项则自动确认,进行覆盖,不出现对话框。

#6


BOOL CopyFile(
  LPCTSTR lpExistingFileName, // 源文件名
  LPCTSTR lpNewFileName,      // 目标文件名
  BOOL bFailIfExists          // 在目标文件存在时是否覆盖该文件
);
BOOL CopyFileEx(
  LPCTSTR lpExistingFileName,           // 源文件名
  LPCTSTR lpNewFileName,                // 目标文件名
  LPPROGRESS_ROUTINE lpProgressRoutine, // 回调函数
  LPVOID lpData,                        // 传递给回调函数的参数
  LPBOOL pbCancel,                      // 取消参数,如果在执行过程中将这个变量设为FALSE拷贝过程将会取消
  DWORD dwCopyFlags                     // 拷贝参数
);

其中CopyFileEx可以提供一个回调函数,并且在拷贝过程中CopyFileEx会调用这个回调函数。

#7


谢谢了!定一个