系统函数SHFileOperation的用法

来源:互联网 发布:javascript网站书籍 编辑:程序博客网 时间:2024/06/05 03:26

大家好:

        最近我用SHFileOperation函数作了一个自己定义的函数copy目录,虽然现在还没有把最后的问题搞定,但是觉得他的用途非常广泛。下面就他的用法给大家说一下:

        首先,这个函数的功能可以复制,删除,创建,重命名文件、目录等功能;

        其次,用这个函数需要一个数据结构的支持,那就是神秘的SHFILEOPSTRUCT,下面给大家介绍一下这个结构。

SHFILEOPSTRUCT   FileOP

FileOP.hwnd = AfxGetApp()->m_pMainWnd->m_hWnd;
FileOP.fFlags = FOF_SILENT;
FileOP.wFunc = FO_COPY;
FileOP.pFrom = szSourcePath;
FileOP.pTo = szDestinationPath;
FileOP.fAnyOperationsAborted = FALSE; //
FileOP.hNameMappings = NULL;
FileOP.lpszProgressTitle = NULL;

根据上面的代码可以看到这个数据的结构,我们一般需要关心的就是这几项。

本函数支持多路径的copy delete 等功能,在使用时一定要记住FileOP.pFrom 和FileOP.pTo 后面用一个/0表示一个路径的结束用/0/0才是这一个参数的结束,大部分人出问题都在这个地方,希望大家注意了。

其中我们注意发fFlags这一项下面说明一下:

FOF_ALLOWUNDO 允许撤销,如FO_DELETE操作则会删除到回收站中

FOF_CONFIRMMOUSE Not implemented(应该是未实现)

FOF_FILESONLY 只对文件操作,前提是使用通配符*.*

FOF_MULTIDESTFILES // 有多个目的目录

FOF_NOCONFIRMATION 不显示覆盖文件对话框

FOF_NOCONFIRMMKDIR 不提示创建文件

FOF_RENAMEONCOLLISION 如果有相同文件则改名

FOF_SILENT 安静模式

FOF_SIMPLEPROGRESS // 显示简单的进程条

FOF_WANTMAPPINGHANDLE // 

 

好了就说这么多 希望对大家有用。

原创粉丝点击