调用文件拷贝函数,用变量代替参数时出错问题。。

zling1981 2004-11-23 02:05:24
一个文件拷贝函数如下:
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)时却提示无法复制文件,为什么呢 ?而参数如果是直接输路径就可以。
...全文
82 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zling1981 2004-11-23
  • 打赏
  • 举报
回复
在我的程序里s,y是全局变量,文件路径放在.ini文件里, 在tform.createform()里就自动从ini文件里给s,y赋值的了。
aiirii 2004-11-23
  • 打赏
  • 举报
回复
'c:\\zl’

加兩個 \\
bee2518 2004-11-23
  • 打赏
  • 举报
回复
确保s,y在copy(s,y)前面赋值,而且赋值后直接运行copy(s,y)
你那C:SHIshi
没有理由出现这种情况

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧