#include <shellapi.h>
// 复制根目录所有的文本文件到临时目录。
char *From = "D://VS2008//*.*/0";
char *To = "E://a12345///0";
SHFILEOPSTRUCT op;
ZeroMemory(&op, sizeof(op));
op.hwnd = m_hWnd;
op.wFunc = FO_COPY;
op.pFrom = From;
op.pTo = To;
op.fFlags= 0;
SHFileOperation(&op);
注意:
1:当你指定FO_DELETE操作的时候,如果fFlags包含FOF_ALLOWUNDO,文件将送到回收站,否则它们将被删除.
2:op结构的项目pFrom和pTo是字符指针,而不是数组.它们必须指向一个字符串,因为结构不含有任何存储空间,不能这样做:
op.pFrom = "C://*.TXT";
op.pTo = "C://TEMP";
3:在文件名字符串中注意到额外的终止符0(在字符串中的'/0')。MSDN文档表明pTo和pFrom字符串一定是双重零结束。
4:pFrom和pTo指向的内存可以包含多个字符串,字符串之间用0分隔,最后也要用双重0结束,下面是一个例子:
char *From = "C://*.txt/0C://*.log/0C://*.tmp/0";
op.pFrom = From;
//也可以用空白分隔
char *From = "C://*.txt/0"
"C://*.log/0"
"C://*.tmp/0";
5:当复制或者移动文件的时候,在fFlags参数中包含FOF_RENAMEONCOLLISION将阻止函数改写现存的文件,shell将建立名字叫做“复件 原文件名”的复制品(资源管理器就是这样做的).
6:你能也指定FO_RENAME作为wFunc参数.fFlags参数能包含很多其它高级方式,更多信息请参阅WIN32.HLP文件.
// 复制根目录所有的文本文件到临时目录。
char *From = "D://VS2008//*.*/0";
char *To = "E://a12345///0";
SHFILEOPSTRUCT op;
ZeroMemory(&op, sizeof(op));
op.hwnd = m_hWnd;
op.wFunc = FO_COPY;
op.pFrom = From;
op.pTo = To;
op.fFlags= 0;
SHFileOperation(&op);
注意:
1:当你指定FO_DELETE操作的时候,如果fFlags包含FOF_ALLOWUNDO,文件将送到回收站,否则它们将被删除.
2:op结构的项目pFrom和pTo是字符指针,而不是数组.它们必须指向一个字符串,因为结构不含有任何存储空间,不能这样做:
op.pFrom = "C://*.TXT";
op.pTo = "C://TEMP";
3:在文件名字符串中注意到额外的终止符0(在字符串中的'/0')。MSDN文档表明pTo和pFrom字符串一定是双重零结束。
4:pFrom和pTo指向的内存可以包含多个字符串,字符串之间用0分隔,最后也要用双重0结束,下面是一个例子:
char *From = "C://*.txt/0C://*.log/0C://*.tmp/0";
op.pFrom = From;
//也可以用空白分隔
char *From = "C://*.txt/0"
"C://*.log/0"
"C://*.tmp/0";
5:当复制或者移动文件的时候,在fFlags参数中包含FOF_RENAMEONCOLLISION将阻止函数改写现存的文件,shell将建立名字叫做“复件 原文件名”的复制品(资源管理器就是这样做的).
6:你能也指定FO_RENAME作为wFunc参数.fFlags参数能包含很多其它高级方式,更多信息请参阅WIN32.HLP文件.