Salvar arquivo em pasta pre-definida

Delphi

14/06/2012

Olá,

Alguem sabe como fazer isso, o usuario clica em um button abre uma caixa de dialogo onde ele vai procurar por um arquivo na maquina dele e qdo achar seleciona o arquivo e depois clica em SALVAR e o arquivo é salvo numa pasta pre-definida (C:\Contas). Isso pode ser feito com o SAVEDIALOG ou tem que ser outro componente?

Grato

Luiz Carlos
Luiz Carlos

Luiz Carlos

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

14/06/2012

Cara, você vai usar um componente TOpenDialog e definir o diretório inicial dele. Ao clicar no botão, você pega o nome do arquivo selecionado (opendialog.FileName) e usa para copiar o arquivo para a pasta padrão usando o comando FopyFile.

Boa sorte.
GOSTEI 0
Luiz Carlos

Luiz Carlos

14/06/2012

Voce poderia me dar um exemplo de como usar esse comando, por exemplo o usuario vai buscar o arquivo na maquina dele com o opendialog, ai seleciona o arquivo e clica em ABRIR no opendialog e o arquivo é salvo na pasta C:\Contas direto.Como faço isso?

Grato

Luiz Carlos
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

14/06/2012

O código é o seguinte:
if openDlg.Execute then
begin
if CopyFile(PChar(openDlg.FileName), PChar(´C:\Contas\´+ExtractFileName(openDlg.FileName)), True) then
ShowMessage(´Arquivo copiado com sucesso!´);
end;


Eu não testei esse código, escrevi direto aqui. Adeque à sua necessidade e teste.
GOSTEI 0
Luiz Carlos

Luiz Carlos

14/06/2012

Blza Joel, funcionou perfeito. Agora desculpe pertubar de novo, mas como faria para se em vez de aalvar na pasta C:\Contas eu quisesse salvar em uma subpasta cujo nome seria o conteudo de um edit, exemplo: salvar o arquivo que foi selecionado no opendialog em C:\Contas\ + edconta.text (este edconta.text contem o nome da subpasta).

Grato

Luiz Carlos
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

14/06/2012

Ora, cara, você mesmo postou a resposta. Você chegou a tentar fazer?
[code]
´C:\Contas\´ + edconta.text+´\´+ExtractFileName(openDlg.FileName)
[code]
GOSTEI 0
Luiz Carlos

Luiz Carlos

14/06/2012

Tentei fazer desse jeito mas não deu certo:

if AbrePDF.Execute then
begin
if CopyFile(PChar(ABREPDF.FileName), PChar(C:\Contas\ + edcontas.Text + ExtractFileName(abrePDF.FileName)), True) then
ShowMessage(Anexo gravado com sucesso!);
end;

Mas ao inves de salvar na subpasta (cujo nome esta no edcontas) ele salva na pasta C:\Contas e o nome do arquivo é alterado da seguinte forma, nome original ALMOX, apos salvar na pasta errada ele tambem altera o nome para 10ALMOX, onde 10 é o conteudo do edcontas.

Grato

Luiz Carlos
GOSTEI 0
Luiz Carlos

Luiz Carlos

14/06/2012

Rapaz, foi vacilo meu, esqueci de colocar a + \
GOSTEI 0
Luiz Carlos

Luiz Carlos

14/06/2012

Rapaz, foi erro meu, esqueci de colocar + \ + depois do edcontas.text, por isso estava dando errado. Muito obrigado pela ajuda Joel.

Grato

Luiz Carlos
GOSTEI 0
POSTAR