调用文件拷贝函数,用变量代替参数时出错问题。。
一个文件拷贝函数如下:
function Copy(FromFile, ToFile: String): Boolean;
var
T: TSHFileOpStruct;
FromBuf,ToBuf: Array [0..128] of Char;
begin
FillChar(FromBuf,Sizeof(FromBuf),0);
FillChar(ToBuf,Sizeof(ToBuf),0); //用0初始化FromBuf和ToBuf数组
StrPCopy(FromBuf,FromFile);
StrPCopy(ToBuf,ToFile);//分别在 FromBuf和ToBuf数组中填入操作的源目录及目标目录
with T do //开始填充 T 记录
begin
Wnd:=Handle;
wFunc:=FO_COPY;
pFrom:=@FromBuf;
pTo:=@ToBuf;
fFlags:=FOF_NOCONFIRMATION + FOF_SILENT + FOF_NOERRORUI + FOF_FILESONLY;
fAnyOperationsAborted:= False;
hNameMappings:= nil;
lpszProgressTitle:= nil;
end;
if SHFileOperation(T) = 0 then
begin
Result:= True;
ShowMessage('复制完毕!!');
end else
begin
Result:= False;
ShowMessage('复制失败!!');
end;
end;
调用该函数时我用s,y两个string变量来代替它的输入参数,两变量已经被赋值,如s:=‘c:\zl’ y:=‘c:\wf’ 调用该函数copy(s,y)时却提示无法复制文件,为什么呢 ?而参数如果是直接输路径就可以。