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:=@FromBuf; //填源路径字符 pTo:=@ToBuf; //填目标路径字符 fFlag:=FOF_NOCONFIRMATION or FOF_SIMPLEPROGRESS //注意操作标志,如果你要让进度条出现必须有FOF_SIMPLEPROGRESS值 fAnyOperationsAborted:=false; hNameMappings:=nil; lpszProgressTitle:=nil; end; if SHfileOperation(OpStruc)=0 then showmessage('复制完毕!'); end;
|