Delphi2006Copyfile调用后不能删除原文件,急!! 我在delphi2006中调用Copyfile函数将一个文件拷贝到另一个位置,然后删除原文件,总是删除不了,按步跟踪发现这时候原文件正在使用,哪位高手知道怎么处理,急用!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Copy *.Txt C:\Temp 那olddirectory 只要传入:c:\*.txt 即可,后面会自动删除 procedure BackUp_File(OldDirectory:string;NewDirectory:string); var lpFileOp: TSHFileOpStruct; FromDir:PChar; ToDir:PChar; begin GetMem(FromDir, Length(OldDirectory)+2); GetMem(ToDir, Length(NewDirectory)+2); Try FillChar(FromDir^, Length(OldDirectory)+2, 0); FillChar(ToDir^, Length(NewDirectory)+2, 0); StrCopy(FromDir, PChar(OldDirectory)); StrCopy(ToDir, PChar(NewDirectory)); lpFileop.wFunc:=FO_COPY; lpFileop.Wnd:=Application.Handle; lpFileop.pFrom:=FromDir; lpFileop.pTo:=ToDir; lpFileop.fFlags:=FOF_NOCONFIRMMKDIR or FOF_NOCONFIRMATION;// or FOF_NOERRORUI; lpFileop.fAnyOperationsAborted := False; lpFileop.hNameMappings := nil; lpFileop.lpszProgressTitle := nil; SHFileOperation(lpFileop); Finally deletefile(pchar(OldDirectory)); FreeMem(ToDir,Length(NewDirectory)+2); FreeMem(FromDir,Length(OldDirectory)+2); end; end; 找到了,不是CopyFile的问题。 idhttp比IE慢很多 dll动态调用dll传参数的问题 interbase中的update问题 怎样实现音视频文件播放的“变速不变调”播放? 菜鸟问题,大空请进! fastreport里我加了个对话框,对话框上加了LABLE,edit控件,编译却找不到这2控件?? 如何取得网卡号???? bde的问题 DCom服务器运行失败 求:Delphi 6.0升级序列号(Enterprise version)(内空) 什么变量可以赋值为nil 关于存储过程的简单送分题
procedure BackUp_File(OldDirectory:string;NewDirectory:string);
var
lpFileOp: TSHFileOpStruct;
FromDir:PChar;
ToDir:PChar;
begin
GetMem(FromDir, Length(OldDirectory)+2);
GetMem(ToDir, Length(NewDirectory)+2);
Try
FillChar(FromDir^, Length(OldDirectory)+2, 0);
FillChar(ToDir^, Length(NewDirectory)+2, 0);
StrCopy(FromDir, PChar(OldDirectory));
StrCopy(ToDir, PChar(NewDirectory));
lpFileop.wFunc:=FO_COPY;
lpFileop.Wnd:=Application.Handle;
lpFileop.pFrom:=FromDir;
lpFileop.pTo:=ToDir;
lpFileop.fFlags:=FOF_NOCONFIRMMKDIR or FOF_NOCONFIRMATION;// or FOF_NOERRORUI;
lpFileop.fAnyOperationsAborted := False;
lpFileop.hNameMappings := nil;
lpFileop.lpszProgressTitle := nil;
SHFileOperation(lpFileop);
Finally
deletefile(pchar(OldDirectory));
FreeMem(ToDir,Length(NewDirectory)+2);
FreeMem(FromDir,Length(OldDirectory)+2);
end;
end;