HanDs
NO.2

[Delphi文章] 用api函数实现文件复制 





学习中请遵循国家相关法律法规,黑客不作恶。没有网络安全就没有国家安全

本站需要登陆后才能查看

Windows API函数 SHfileOperation(TSHFILEOPSTRUCT)的用法:

TSHFILEOPSTRUCT是指向SHFILEOPSTRUCT结构体的指针,在Delphi中定义如下:
Hwnd  //显示状态信息窗口的句柄,一般是你的程序中的主窗体,看你怎么用了
wFunc  //要执行的操作   取值:FO_COPY 复制
          FO_MOVE 移动
          FO_Delete 删除
pFrom  //源文件或目录
pTo    //目标文件或目录
fFlag  //控制文件操作的标志  其中你感兴趣的标志取值为:
       FOF_SILENT---不创建进度条
       FOF_SIMPLEPROGRESS----显示进度条对话框但不显示文件名
       FOF_NOCONFIRMATION-----操作过程中不显示确认信息,相当与用户选择了"Yes to all"
其他的取值可以参考ShellAPI单元的参数定义(全E文的哦 ^_^)
fAnyOperationsAborted   //Boolean类型值,操作是否放弃
hNameMappings   //文件名映射对象的句柄,很少用到,一般取nil
lpszProgressTitle  //进度条标题,注意仅在fFlag中指定了FOF_SIMPLEPROGRESS时才有效.
函数返回值为0表示操作成功

例如:
将C:\document目录的文件复制到D盘"文档"目录下

Procedure Tform1.Button1Click(Sender:TObject)
var
OpStruc:TSHFileOpStruct;   //定义OpStruc为操作结构体指针
FromBuf,ToBuf:array[0..255] of char; //定义源路径和目标路径
Begin
 StrPcopy(FromBuf,Pchar('C:\document'));
 StrPcopy(FromBuf,Pchar('D:\文档'));     //设置源路径和目标路径
 with OpStruc do        //开始定义结构体参数
  begin
   wnd:=handle;         //定义本窗体句柄,表明操作在本窗体出现
   wFunc:=FO_COPY;     //说明本次操作为复制
   pFrom:[email protected];    //填源路径字符
   pTo:[email protected];        //填目标路径字符
   fFlag:=FOF_NOCONFIRMATION or FOF_SIMPLEPROGRESS  //注意操作标志,如果你要让进度条出现必须有FOF_SIMPLEPROGRESS值
   fAnyOperationsAborted:=false;
   hNameMappings:=nil;
   lpszProgressTitle:=nil;
 end;
 if SHfileOperation(OpStruc)=0 then showmessage('复制完毕!');
end;


学习中请遵守法律法规,本网站内容均来自于互联网,本网站不负担法律责任
ap i 函数 实现 文件 复制
#1楼
发帖时间:2016-7-9   |   查看数:0   |   回复数:0
游客组