首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Delphi2006Copyfile调用后不能删除原文件,该怎么解决

2012-02-04 
Delphi2006Copyfile调用后不能删除原文件,急!!我在delphi2006中调用Copyfile函数将一个文件拷贝到另一个位

Delphi2006Copyfile调用后不能删除原文件,急!!
我在delphi2006中调用Copyfile函数将一个文件拷贝到另一个位置,然后删除原文件,总是删除不了,按步跟踪发现这时候原文件正在使用,哪位高手知道怎么处理,急用!!!

[解决办法]
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;

热点排行