ShFileOperation函数详解

ShFileOperation函数详解[WinAPI]ShFileOperation函数详解2010-04-1110:24ShFileOperation只有一个参数是LPSHFILEOPSTRUCT型的相当于delphi中的TSHFileOpStruct;  c语言定义为:  typedef struct _SHFILEOPSTRUCT{   HWND         hwnd

大家好,又见面了,我是你们的朋友全栈君。[WinAPI]ShFileOperation函数详解

2010-04-11 10:24

ShFileOperation只有一个参数是LPSHFILEOPSTRUCT型的相当于delphi中的TSHFileOpStruct;   

c语言定义为:   

typedef   struct   _SHFILEOPSTRUCT{     

HWND                   hwnd;     

UINT                   wFunc;     

LPCSTR               pFrom;     

LPCSTR               pTo;     

FILEOP_FLAGS   fFlags;     

BOOL                   fAnyOperationsAborted;     

LPVOID               hNameMappings;     

LPCSTR               lpszProgressTitle;     

}   SHFILEOPSTRUCT,   FAR   *LPSHFILEOPSTRUCT;     

相应的pascal就是:   

type     

_SHFILEOPSTRUCTA   =   packed   record   

Wnd:   HWND;   

wFunc:   UINT;   

pFrom:   PAnsiChar;   

pTo:   PAnsiChar;   

fFlags:   FILEOP_FLAGS;   

fAnyOperationsAborted:   BOOL;   

hNameMappings:   Pointer;   

lpszProgressTitle:   PAnsiChar;   {   only   used   if   FOF_SIMPLEPROGRESS   }   

end;     

hwnd:用来显示操作状态的对话框句柄。   例中是form1的句柄   

wFunc:执行的操作。可以是以下各值:(例中是FO_COPY)   

FO_COPY:拷贝pfrom域中指定的(目录,例中是’c:\a’)到pto中指定的位置(例中为’c:\b’)     

FO_DELET:删除pfrom中指定的文件.       (pTo不用)     

FO_MOVE:移动PFrom中指定的文件到pto中指定的位置。       

FO_RENAME:给PFrom中指定的文件改名。   

pFrom:指定一个或多个源文件名的缓冲区地址。多个名字必须用NULL分隔。名字列表必须用两个NULL(nil,’\0′)来结束。   

pTo:目标文件或目录名缓冲区地址。   如果fFlags域指定FOF_MULTIDESTFILES,缓冲区可以包含多个目标文件名。多个名字必须用NULL分隔。名字列表必须用两个NULL(nil,’\0′)   

fFlags   :控制操作的标志,可以是以下各值组合:   

FOF_ALLOWUNDO:保留Undo信息,   如果pFrom没有包含全的绝对的路径或文件名此值忽略。   

FOF_CONFIRMMOUSE:没有实现.   

FOF_FILESONLY:只有文件名使用通配符时(*.*)才对文件操作。   

FOF_MULTIDESTFILES:     pTo域指一定了多个目标文件.(一个对就一个源文件)   而不是指定一个目录来存放所有源文件       

FOF_NOCONFIRMATION:所有显示的对话框全部选择yes   to   all   

FOF_NOCONFIRMMKDIR:   如果需要创建一个新目录不确认。   

FOF_NOCOPYSECURITYATTRIBS:     4.71.   Microsoft®   Windows   NT®   only.   安全属性不复制.   

FOF_NOERRORUI:发生错误时不提供用户接口。   

FOF_RENAMEONCOLLISION:     move,copy,rename操作时如目标文件存在,给操作的文件另起一个名字。   

FOF_SILENT:不显示进度对话框   

FOF_SIMPLEPROGRESS:显示进度对话框但不显示文件名。   

FOF_WANTMAPPINGHANDLE:如果指定了FOF_RENAMEONCOLLISION   当任何文件改名时将填写hNameMappings   域   

fAnyOperationsAborted:当用户在完成前取消任何文件操作时赋值TRUE,否则FALSE.   

hNameMappings:一个包含SHNAMEMAPPING结构数组的文件名映射对象句柄.   每一个(SHNAMEMAPPING)结构包括一个旧的或新的目录名为了每一个移动的复制的改名的文件。这个域仅在fFlags域包括 FOF_WANTMAPPINGHANDLES标志时使用。句柄必须使用SHFreeNameMappings来释放(用完后)   

lpszProgressTitle   :进程对话框的标题串地址。仅在fFlags中包括FOF_SIMPLEPROGRESS标志时使用。   

如果pFrom和pTo不是一个绝对目录时,当前目录从全局当前盘符和当前目录中取得,同时目录设置由GetCurrentDirectory   和SetCurrentDirectory   函数维护.   

另外附上:   

ExtractFileName//获得文件名   

ExtractFilePath//获得文件路径   

ExtractFileExt//获得文件扩展名

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160988.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 浏览器怎么打开微信客户端连接服务器,微信“请在微信客户端打开链接”怎么办?-在浏览器中打开微信链接的方法 – 河东软件园…「建议收藏」

    浏览器怎么打开微信客户端连接服务器,微信“请在微信客户端打开链接”怎么办?-在浏览器中打开微信链接的方法 – 河东软件园…「建议收藏」自从出现了电脑版的微信之后,很多用户都会在电脑中下载安装一个客户端,可就是电脑客户端中打开链接也会出错!微信中有的时候朋友或是公众号会发送一些链接,若是使用电脑单击打开就会被提示“请在微信客户端打开链接”,可是自己使用的就是电脑客户端,并且更换浏览器也不能解决这个现象,这是怎么一回事呢?因为在微信中是自动设置了使用默认浏览器打开的,无法识别的时候自然就不能打开了,我们可以在微信中直接将这个功能关闭…

    2022年6月6日
    613
  • qtablewidget设置滚动条样式_word滚动条作用

    qtablewidget设置滚动条样式_word滚动条作用IhaveaQTabWidgetwithtoomanytabsandtheyoverflowwithscrollerarrows.Iwanttoincreasethewidthofthescrollerarrowsbymorethantwiceofthedefaultwidthsotheyareeasiertouseona…

    2022年9月23日
    0
  • 002.AnyCast技术浅析

    002.AnyCast技术浅析  一常见通信方式    1.1UniCastAnyCast    UniCast,即单播,指网络中一个节点与另一个节点之间需要建立一个单独的数据通道,从一个节点发出的信息只被一个节点收到,这种传送方式称为单播。即网络中从源向目的地转发单播流量的过程,IP地址与节点(主机)一一对应,单播流量地址唯一。每个节点必须分别对需要访问的节点发送单独的查询,而被访问节点必须向每个访问节点发送所申请的数…

    2022年5月23日
    36
  • Python IDLE 安装与使用教程(调试、下载)

    Python IDLE 安装与使用教程(调试、下载)原文:http://www.jb51.net/softjc/142580.html由于Google、YouTube等大型公司的推广,Python编程语言越来越受欢迎,很多编程爱好者,也将Python

    2022年7月6日
    18
  • implicitly declaring library_no such object available

    implicitly declaring library_no such object availableAPAP论文源码中全局单应GH的部分!

    2022年9月23日
    0
  • pycharm加注释的快捷方式_pycharm如何批量注释

    pycharm加注释的快捷方式_pycharm如何批量注释1、主题  在开发项目的过程中经常需要创建任务列表,对于一些小任务,在代码中插入便签注释会有奇效。  这种注释的格式如下:  2、创建便签注释  非常简单:  首先,将光标定位到相应行。  然后,创建一行注释(Ctrl+Slash)。  最后,在#后面,输入TODO或者todo,然后输入注释  3、浏览便签  在T

    2022年8月28日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号