7 个解决方案
#1
SHFileOperation
用法参考MSDN
用法参考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);
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会调用这个回调函数。
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
用法参考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);
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会调用这个回调函数。
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
谢谢了!定一个