delphi文件、文件夹删除移动和拷贝

delphi文件、文件夹删除移动和拷贝

2023年7月6日发(作者:)

delphi 文件、文件夹删除移动和拷贝delphi文件、文件夹删除移动和拷贝2010-12-21 19:01

文件删除、移动和拷贝。

function WinErasefile(Owner:Integer;WichFiles:string;SendToRecycleBin,Confirm:Boolean):Boolean;

//用于将文件直接删除或移动到回收站

var Struct:TSHFileOpStructA;

begin FillChar(Struct,SizeOf(Struct),0);

While pos(';',WichFiles)0 do WichFiles[pos(';',WichFiles)]:=#0;

WichFiles:=WichFiles+#0#0;

with Struct do begin wnd:=Owner;

wFunc:=FO_Delete;

pFrom:=PChar(WichFiles);

pTo:=nil;

If not Confirm then fFlags:=FOF_NOCONFIRMATION;

If SendToRecycleBin then fFLags:=fFlags or FOF_ALLOWUNDO or

FOF_FILESONLY else fFlags:=fFlags or 0or FOF_FILESONLY;

hNameMappings:=nil;

lpszProgressTitle:=nil; end;

result:=(SHFileOperationA(Struct)=0)and(not

erationsAborted);

end;

function WinErasepath(Owner:Integer;WichFiles:string;SendToRecycleBin,Confirm:Boolean):Boolean;

//用于将目录直接删除或移动到回收站

var Struct:TSHFileOpStructA;

begin FillChar(Struct,SizeOf(Struct),0);

While pos(';',WichFiles)0 do WichFiles[pos(';',WichFiles)]:=#0;

WichFiles:=WichFiles+#0#0;

with Struct do begin wnd:=Owner;

wFunc:=FO_Delete;

pFrom:=PChar(WichFiles);

pTo:=nil;

If not Confirm then fFlags:=FOF_NOCONFIRMATION;

If SendToRecycleBin then fFLags:=fFlags or FOF_ALLOWUNDO else

fFlags:=fFlags or 0or FOF_FILESONLY;

hNameMappings:=nil;

lpszProgressTitle:=nil;

end; result:=(SHFileOperationA(Struct)=0)and(not

erationsAborted);

end;

function WinMovepath(Owner:Integer;FromFile,Tofile:string;ReNameOnCollision,Confirm:Boolean):Boolean;

//用于将目录进行移动

var Struct:TSHFileOpStructA;

MultDest:Boolean;

begin FillChar(Struct,SizeOf(Struct),0);

MultDest:=pos(';',ToFile)0;

While pos(';',FromFile)0 do FromFile[pos(';',FromFile)]:=#0;

While pos(';',ToFile)0 do ToFile[pos(';',ToFile)]:=#0;

FromFile:=FromFile+#0#0;

ToFile:=ToFile+#0#0;

with Struct do begin wnd:=Owner;

wFunc:=FO_Move;

pFrom:=PChar(FromFile);

pTo:=PChar(ToFile);

fFlags:=FOF_ALLOWUNDO;

If MultDest then fFLags:=fFlags or FOF_MULTIDESTFILES; If ReNameOnCollision then fFLags:=fFlags or

FOF_RENameONCOLLISION;

If Confirm then fFLags:=fFlags or FOF_NOCONFIRMATION;

hNameMappings:=nil;

lpszProgressTitle:=nil;

end;

result:=(SHFileOperationA(Struct)=0)and(not

erationsAborted);

end;

function WinMovefile(Owner:Integer;FromFile,Tofile:string;ReNameOnCollision,Confirm:Boolean):Boolean;

//用于将文件进行移动

var Struct:TSHFileOpStructA;

MultDest:Boolean;

begin FillChar(Struct,SizeOf(Struct),0);

MultDest:=pos(';',ToFile)0;

While pos(';',FromFile)0 do FromFile[pos(';',FromFile)]:=#0;

While pos(';',ToFile)0 do ToFile[pos(';',ToFile)]:=#0;

FromFile:=FromFile+#0#0;

ToFile:=ToFile+#0#0;

with Struct do begin wnd:=Owner; wFunc:=FO_Move;

pFrom:=PChar(FromFile);

pTo:=PChar(ToFile);

fFlags:=FOF_ALLOWUNDO or FOF_FILESONLY;

If MultDest then fFLags:=fFlags or FOF_MULTIDESTFILES;

If ReNameOnCollision then fFLags:=fFlags or

FOF_RENameONCOLLISION;

If Confirm then fFLags:=fFlags or FOF_NOCONFIRMATION;

hNameMappings:=nil;

lpszProgressTitle:=nil;

end;

result:=(SHFileOperationA(Struct)=0)and(not

erationsAborted);

end;

function WinCopypath(Owner:Integer;FromFile,Tofile:string;ReNameOnCollision,Confirm:Boolean):Boolean;

//拷贝目录

var Struct:TSHFileOpStructA;

MultDest:Boolean;

begin FillChar(Struct,SizeOf(Struct),0);MultDest:=pos(';',ToFile)0; While pos(';',FromFile)0 do FromFile[pos(';',FromFile)]:=#0;

While pos(';',ToFile)0 do ToFile[pos(';',ToFile)]:=#0;

FromFile:=FromFile+#0#0;

ToFile:=ToFile+#0#0;

with Struct do begin wnd:=Owner;

wFunc:=FO_Copy;

pFrom:=PChar(FromFile);

pTo:=PChar(ToFile);

fFlags:=FOF_ALLOWUNDO;

If MultDest then fFLags:=fFlags or FOF_MULTIDESTFILES;

If ReNameOnCollision then fFLags:=fFlags or

FOF_RENameONCOLLISION;

If not Confirm then begin fFLags:=fFlags or FOF_NOCONFIRMATION

or FOF_NOCONFIRMMKDIR;

end;

hNameMappings:=nil;

lpszProgressTitle:=nil;

end;

result:=(SHFileOperationA(Struct)=0)and(not

erationsAborted);

end; function WinCopyfile(Owner:Integer;FromFile,Tofile:string;ReNameOnCollision,Confirm:Boolean):Boolean;

//拷贝文件

var Struct:TSHFileOpStructA;

MultDest:Boolean;

begin FillChar(Struct,SizeOf(Struct),0);MultDest:=pos(';',ToFile)0;

While pos(';',FromFile)0 do FromFile[pos(';',FromFile)]:=#0;

While pos(';',ToFile)0 do ToFile[pos(';',ToFile)]:=#0;

FromFile:=FromFile+#0#0;

ToFile:=ToFile+#0#0;

with Struct do begin wnd:=Owner;

wFunc:=FO_Copy;

pFrom:=PChar(FromFile);

pTo:=PChar(ToFile);

fFlags:=FOF_ALLOWUNDO or FOF_FILESONLY;

If MultDest then fFLags:=fFlags or FOF_MULTIDESTFILES;

If ReNameOnCollision then fFLags:=fFlags or

FOF_RENameONCOLLISION;

If not Confirm then begin fFLags:=fFlags or FOF_NOCONFIRMATION

or FOF_NOCONFIRMMKDIR; end;

hNameMappings:=nil;

lpszProgressTitle:=nil;

end;

result:=(SHFileOperationA(Struct)=0)and(not

erationsAborted);

end;

发布者:admin,转转请注明出处:http://www.yc00.com/news/1688598376a153672.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信