Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Cópia de arquivos!


Douglas Soares

Pergunta

por favor, estou tendo um dúvida maluca aqui, eu to tentando copiar um arquivo para uma pasta usando o CopyFile, ele copia da primeira vez, mas da segunda se o arquivo já estiver ele não está copiando!, o que fazer?

Abraços

Editado por Jonathan Queiroz
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Verifica se ele existe IfFileExists, se existir você deleta, então copia de novo.

Vê se alguns desses aí vai servir:

366 - Copiando arquivos usando o Shell do Windows

Coloque no uses: ShellApi

{ - Coloque um botão no form e altere o evento OnClick deste botão conforme abaixo:}

procedure TForm1.Button1Click(Sender: TObject); 
var 
Dados: TSHFileOpStruct; 
begin 
FillChar(Dados,SizeOf(Dados), 0); 
with Dados do 
begin 
wFunc := FO_COPY; 
pFrom := PChar('c:\teste\*.txt'); 
pTo := PChar('a:\'); 
fFlags:= FOF_ALLOWUNDO; 
end; 
SHFileOperation(Dados); 
end;
Observações: Esta forma de copiar arquivos oferecem várias vantagens. O Shell avisa para pôr um próximo disco quando o atual estiver cheio. Mostra a barra de progresso. Pode copiar arquivos usando máscara de uma forma extremamente simples. ============================================================================ 198 - Copiar arquivos usando curingas (*.*)
{ - Coloque um Button no Form;

  - Altere o evento OnClick deste Button conforme abaixo: }



procedure TForm1.Button2Click(Sender: TObject);
var
  SR: TSearchRec;
  I: integer;
  Origem, Destino: string;
begin
  I := FindFirst('c:\Origem\*.*', faAnyFile, SR);
  while I = 0 do begin
  if (SR.Attr and faDirectory) <> faDirectory then begin
  Origem := 'c:\Origem\' + SR.Name;
  Destino := 'c:\Destino\' + SR.Name;
  if not CopyFile(PChar(Origem), PChar(Destino), true) then
  ShowMessage('Erro ao copiar ' + Origem + ' para ' + Destino);
  end;
  I := FindNext(SR);
  end;
end;

Observações

No exemplo acima, se o arquivo já existir no destino, a função falha (não copia). Para que a função possa sobreescrever o arquivo destino (caso exista), altere o último parâmetro de CopyFile para false. CUIDADO! Se um arquivo for sobreescrito, estará perdido para sempre!

============================================================================

Dicas retiradas do LloydSoft - DTDelphi 2.8 - 900 dicas de programação Delphi

Link para o comentário
Compartilhar em outros sites

  • 0

Realmente, eu tentava da segunda forma e não dava certo, porem da primeira eu tenho o código aqui mas ficava aparecendo a janelinha de copiando do windows!, mas isso foi facil, só colocar as FLAGS certas! você iluminou minha mente, rsrsrsrs.

Abraços!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...