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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • libzplay库

    libzplay目前,非开源,只可以在windows上应用;关于MP3文件播放:通常步骤是:获取MP3相关参数->解码->相关平台播放音频接口播放声音;可以播放解码播放MP3的库很多,如果VLC,ffplay,或者directshow,解码库一般可以用lame,播放播放库可以用SDL,或者Windows上的waveout,directsound等很多方法,这里例举

    2022年4月9日
  • mac datagrip2021.4激活码_通用破解码

    mac datagrip2021.4激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
  • cmd炫酷代码大全「建议收藏」

    cmd炫酷代码大全「建议收藏」事先准备:新建一个txt,后缀名改成cmd(或bat)里面写代码即可声明:文章目录cmd炫酷代码大全1.循环类1.1.黑客王国1.2.命令tree1.3.我是这条街,这条街,最靓的仔1.4.数字点阵1.5.数字王国加强版2.其他类2.1.观看星球大战完结cmd炫酷代码大全1.循环类1.1.黑客王国coloraechooff:123echo0101010010100101010101010101010101010101010101010101001010101echo10101

    2022年6月25日
  • 教你写Makefile(很全,含有工作经验的)

    教你写Makefile(很全,含有工作经验的)原文转载文Makefile值得一提的是,在Makefile中的命令,必须要以[Tab]键开始。    什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是…

    2022年5月8日
  • linux C 中的volatile使用【转】[通俗易懂]

    linux C 中的volatile使用【转】

    2022年3月12日
  • 起用与启用有什么区别_启用跟起用的区别

    起用与启用有什么区别_启用跟起用的区别"起用"与"启用":"起用"多用于与人有关,如"起用一代新人";"启用"一般用于与物有关,如&quo

    2022年8月2日

发表回复

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

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