o fileexits não copia o arquivo desejado para o diretorio escolhido, mais não da nenhum erro.

Delphi

15/02/2023

procedure TFM_Backup.BtnBckClick(Sender: TObject);
const
origem = ''''''''C:\Padaria\Banco\PADARIA.FDB'''''''';
begin
dm.CONEXAO.Connected:=false;


if EdtLocal.Text = '''''''''''''''' then
begin
showmessage(''''''''Escolha um local antes de iniciar'''''''');
abort;
end;

if fileExists(EdtLocal.Text) then
Begin
if messagedlg(''''''''Existe um arquivo de backup nesse local deseja substitui-lo?'''''''',MtConfirmation,[mbYes,mbNo],0)=mrYes then
begin
DeleteFile(EdtLocal.Text);

if CopyFile( origem, pchar(EdtLocal.Text), True) then
begin
showmessage(''''''''Backup realizado com sucesso!'''''''');
end;
end;
End
else
begin
if CopyFile( origem, pchar(EdtLocal.Text), True) then
begin
showmessage(''''''''Backup realizado com sucesso!'''''''');
end;
end;
dm.CONEXAO.Connected:= True;
close;
end;

procedure TFM_Backup.bt_abrirClick(Sender: TObject);
var
selDir : string;
begin
SelectDirectory(''''''''Selecione uma pasta'''''''', '''''''''''''''', selDir);
EdtLocal.text := seldir;
end;

o programa compila sem nenhum erro, escolho o diretorio onde quero salvar, e ao clicar no botão btnbck ele não da nenhum erro mas não salva o arquivo no diretorio escolhido.
Diego Ribeiro

Diego Ribeiro

Curtidas 0

Respostas

Arthur Heinrich

Arthur Heinrich

15/02/2023

Embora um comando de cópia, no shell, possa especificar como destino uma pasta, acredito que a função CopyFile() espera que seja passado como destino o nome do arquivo, com ou sem o caminho.

A função não gera erros. Ela retorna FALSE se não funcionar.
GOSTEI 0
POSTAR