Douglas Soares Postado Setembro 16, 2009 Denunciar Share Postado Setembro 16, 2009 (editado) 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 Setembro 17, 2009 por Jonathan Queiroz Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 geovanepc Postado Setembro 16, 2009 Denunciar Share Postado Setembro 16, 2009 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 WindowsColoque 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çõesNo 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Setembro 17, 2009 Autor Denunciar Share Postado Setembro 17, 2009 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Douglas Soares
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 QueirozLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.