用SHFileOperation拷贝一个文件,却把当前程序目录下的所有文件拷贝过去了?(100分)

  • 主题发起人 主题发起人 tanber
  • 开始时间 开始时间
T

tanber

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序实现一个拷贝功能,通过调用api函数SHFileOperation实现,我记得前天通过调用这个函数是正常的,今天再调试的时候,发现执行结果除了把指定的文件拷贝过去以后,还把程序当前目录下的所有文件也拷贝过去了,以下是部分代码,请各位帮我看下:
function TFormMain.ShellCopyFile(AFileSrc :string;AFileDes: string): boolean;
var
fo: TSHFILEOPSTRUCT;
tmpresult:integer;
begin
FillChar(fo, SizeOf(fo), 0);
with fo do
begin
Wnd := 0;
wFunc := FO_COPY;
pFrom := '';
pFrom := PChar(AFileSrc);
pTo := PChar(AFileDes);
fFlags := FOF_ALLOWUNDO ;
end;
tmpresult := SHFileOperation(fo);
case tmpresult of
0:Result:=true;
else
Result := false;
end;
end;

是不是跟什么系统库有关系啊?
 
代码没错,估计是你传递的参数有误。
 
我刚试了,没有问题,你调用的问题吧
 
AFileSrc我设定断点跟踪进去看比如是"d:/test/aaa.rar"
AFileDes是"e:/test/"
程序放在d:/mycode/下,执行后,e:/test/下,会存在aaa.rar,但也会出现d:/mycode/下的所有文件.

而且,我前几天运行确实是好的,难道跟系统有关系,是不是那个dll被修改了?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部