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年7月18日 下午10:00
下一篇 2022年7月18日 下午10:00


相关推荐

  • 大数据分析应用领域有哪些[通俗易懂]

    大数据分析应用领域有哪些[通俗易懂]  软件和服务的大数据分析市场收入预计将从2018年的$42B增长到2027年的$103B,复合年增长率(CAGR)为10.48%。这就是为什么,大数据分析认证是业内最全神贯注的技能之一。在这个“大数据分析应用领域”文章中,我将带您进入各个行业领域,在这里我将解释大数据分析如何使它们发生革命性变化。  大数据分析应用  大数据分析应用程序的主要目标是通过分析大量数据来帮助公司做出更具信息量的业务决策。它可能包括Web服务器日志,Internet点击流数据,社交媒体内容和活动报告,来自客户电子邮

    2022年5月29日
    44
  • datagrip激活码【注册码】

    datagrip激活码【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    49
  • Egret 位图_左上格横中线

    Egret 位图_左上格横中线1、准备切割好的图片文件2、打开TextureMerger软件,点击BitmapFont3、将艺术字拖进软件中4、点击导出,导出成功后会生成一个fnt文件和一个png文件5、创建位图对象//文本modulegame{exportclasstextDemoextendsegret.DisplayObjectContainer{…

    2025年7月1日
    6
  • git拉取代码如何解决冲突_Git工具-git pull拉取代码时冲突的解决办法[通俗易懂]

    git拉取代码如何解决冲突_Git工具-git pull拉取代码时冲突的解决办法[通俗易懂]一,在使用gitpull命令拉取代码时,有时会遇到以下错误信息:error:Yourlocalchangestothefollowingfileswouldbeoverwrittenbymerge:…Pleasecommityourchangesorstashthembeforeyoumerge.AbortingUpdating1d17a2c5..3de3e123可按以下步骤解决此问题:1.先将本地修改存储起来使用gitst

    2022年10月8日
    7
  • 文字转语音 两种方法:TextToSpeech、科大讯飞

    文字转语音 两种方法:TextToSpeech、科大讯飞

    2026年3月14日
    2
  • FileStream常用的属性和方法:

    FileStream常用的属性和方法:对流进行操作时要引用usingSystem.IO;命名空间FileStream常用的属性和方法:属性:CanRead判断当前流是否支持读取,返回bool值,True表示可以读取CanWrite判断当前流是否支持写入,返回bool值,True表示可以写入方法:Read()从流中读取数据,返回字节数组Write()将字节块(字节数组)写入该流Seek…

    2022年7月24日
    12

发表回复

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

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