系统函数SHFileOperation的用法

大家好:

        最近我用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 // 

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值