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


相关推荐

  • 盘点购物分享系统,有兴趣的来看看哦

    盘点购物分享系统,有兴趣的来看看哦最近蘑菇街,美丽说等购物分享的火爆。社会化电子商兴起。很多站长看到了市场。你是不是也想做个这类的网站倒是可以接着往下看。现在主流的购物分享系统有方维,拼品,拼图秀,爱图谱,乐兔淘,花世界等。1.方维购物分享系统:现在网上用的较多购物分享系统,比较像蘑菇街的类型。功能较全面,操作起来就是有点复杂,搞了好久才搞定她,不过你可以再网上下载说明书。开发的配套也…

    2022年5月3日
    41
  • Java的注解

    Java的注解一、注解的概念:注解并不是一开始就有的,JDK5之前是没有注解的,JDK5及其以后JDK版本才开始支持Java注解!Java注解(Annotation)也叫做元数据,以@注解名在代码中存在,它是一种在源代码中标注的特殊标记,可以标注源代码中的类、属性、方法、参数等代码,主要用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。1.1Java注解按照含有参数的个数分为三种:不带参数,语法结构为:@Annotation,例如@FunctionalInterface;带一个参数的注解,语

    2022年7月9日
    20
  • 集合转数组[通俗易懂]

    集合转数组[通俗易懂]LinkedListl=newLinkedList();l.add(“one”);l.add(“two”);l.add(“three”);System.out.println(l);Object[]c=l.toArray();for(inti=

    2022年6月14日
    32
  • mysql连接数据库命令_linux进入mysql的命令

    mysql连接数据库命令_linux进入mysql的命令一、MySQL连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123”之间不能有空格)C:>mysql-hlocalhost-uroot-p123二、MySQL连接远程数据库(192.168.0.201),端口“3306”,用户名为“root”,密码“123”C:>mysql-h172.16.16.45-P3306-uroot-p123三、MySQL连接本地数据库,用户名为“root”,隐藏密码C:>mysql-hloc

    2022年9月15日
    2
  • 【转载】Http协议与TCP协议简单理解后续

    【转载】Http协议与TCP协议简单理解后续

    2021年11月18日
    37
  • ds1302实时时钟lcd1602显示_电子时钟单片机

    ds1302实时时钟lcd1602显示_电子时钟单片机DS1302时钟模块LCD1602显示DS1302时钟模块相关介绍基本介绍时序图DS1302时钟模块相关介绍基本介绍DS1302可慢速充电实时时钟芯片包含实时时钟/日历和31字节的非易失性静态RAM。它经过一个简单的串行接口与微处理器通信。实时时钟/日历可对秒,分,时,日,周,月,和年进行计数,对于小于31天的月,月末的日期自动进行调整,还具有闰年校正的功能。时钟可以采用24小时格式或带AM(上午)/PM(下午)的12小时格式。31字节的==RAM==可以用来临时保存一

    2025年7月16日
    4

发表回复

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

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