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条)