vc复制指定文件夹以及文件夹内的内容

1、拷贝文件夹以及文件夹内的文件

BOOL CMainFrame::CopyFolder(LPCTSTR lpszTo, LPCTSTR lpszFrom)//拷贝文件夹
{ 
 SHFILEOPSTRUCT FileOp; 
	SecureZeroMemory((void*)&FileOp,sizeof(SHFILEOPSTRUCT));//secureZeroMemory和ZeroMerory的区别
	//根据MSDN上,ZeryMerory在当缓冲区的字符串超出生命周期的时候,
	//会被编译器优化,从而缓冲区的内容会被恶意软件捕捉到。
	//引起软件安全问题,特别是对于密码这些比较敏感的信息而说。
	//而SecureZeroMemory则不会引发此问题,保证缓冲区的内容会被正确的清零。
	//如果涉及到比较敏感的内容,尽量使用SecureZeroMemory函数。

	FileOp.fFlags = FOF_NOCONFIRMATION | FOF_RENAMEONCOLLISION;		//操作与确认标志 
	FileOp.hNameMappings = NULL;			//文件映射 
	FileOp.hwnd = NULL;						//消息发送的窗口句柄;
	FileOp.lpszProgressTitle = NULL;		//文件操作进度窗口标题 
	FileOp.pFrom = lpszFrom;				//源文件及路径 
	FileOp.pTo = lpszTo;					//目标文件及路径 
	FileOp.wFunc = FO_COPY;					//操作类型 

	return SHFileOperation(&FileOp) == 0;
}



2、拷贝单个文件

BOOL CopyFile( 

LPCTSTR lpExistingFileName, // pointer to name of an existing file 
LPCTSTR lpNewFileName, // pointer to filename to copy to 
BOOL bFailIfExists // flag for operation if file exists 
); 
其中各参数的意义: 
LPCTSTR lpExistingFileName, // 你要拷贝的源文件名 
LPCTSTR lpNewFileName, // 你要拷贝的目标文件名 
BOOL bFailIfExists // 如果目标已经存在,不拷贝(True)并返回False,覆盖目标(false) 

如: 
//拷贝文件c:\log.txt到d:\log.txt,如果D:\log.txt已经存在,就覆盖 
CopyFile("c:\\log.txt","d:\\log.txt",false);  

你可能感兴趣的:(Path,文件夹拷贝)