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盘"文档"目录下
ProcedureTform1.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 OpStrucdo//开始定义结构体参数
begin
wnd:=handle;//定义本窗体句柄,表明操作在本窗体出现
wFunc:=FO_COPY;//说明本次操作为复制
pFrom:=@FromBuf;//填源路径字符
pTo:=@ToBuf;//填目标路径字符
fFlag:=FOF_NOCONFIRMATION orFOF_SIMPLEPROGRESS //注意操作标志,如果你要让进度条出现必须有FOF_SIMPLEPROGRESS值
fAnyOperationsAborted:=false;
hNameMappings:=nil;
lpszProgressTitle:=nil;
end;
if SHfileOperation(OpStruc)=0 then showmessage('复制完毕!');
end;
----------------------------------------------