uses
ShellAPI;
function SHCopyFile(ExistingFileName: string; NewFileName: string): Boolean;
var
FileOp: TSHFileOpStruct;
begin
if GetFileAttributes(
PChar(NewFileName+ExtractFileName(ExistingFileName))
)=INVALID_FILE_ATTRIBUTES then
begin
ZeroMemory(@FileOp, SizeOf(TSHFileOpStruct));
FileOp.wFunc:=FO_COPY;
FileOp.pFrom:=PChar(ExistingFileName+#0);
FileOp.pTo:=PChar(NewFileName+#0);
FileOp.fFlags:=FOF_SILENT;
Result:=SHFileOperation(FileOp)=0;
end else Result:=True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
while Memo1.Lines.Count>0 do
begin
if not SHCopyFile(Memo1.Lines[0], 'd:\CommonFiles\dst\') then RaiseLastOSError;
Memo1.Lines.Delete(0);
end;
end;