Fórum Copiar - Mover - Renomear foto #414777
29/03/2012
0
Estou com o seguinte problema
Estou tentando copiar, mover, renomear fotos adicionado pelo usuario só que esta acontendo o seguinte ele esta copiando e renomeando só que está copiando 2 vezes o mesmo arquivo.
Ex.
foto.jpg ele copia e joga na pasta Destino renomea para **001A.jpg** só que na mesma pasta destino ele mantem
tambem uma copia da foto.jpg
var
Nome : string;
destino, origem, extensao : string;
begin
if OpenDialog.Execute then
begin
Nome := ExtractFileName(OpenDialog.FileName); // Extrai o da Nome da foto
origem := ExtractFilePath(OpenDialog.FileName);
extensao := ExtractFileExt(OpenDialog.FileName); // extensao
destino := C:\Arquivos de Programas\Agenda\Fotos\Antes\; // Caminho padrao
CopyFile(PChar(origem+Nome), PChar(destino+Nome), False);// move para pasta ** aqui ele esta copiando em duplicidade **
RenameFile(origem+Nome, destino+DBEmatricula.Text+A+extensao);
Frost
Curtir tópico
+ 0Posts
29/03/2012
Joel Rodrigues
Primeiro você está copiando o arquivo com o nome original depois você está renomeando o arquivo de acordo com o que o usuário digitou (isso acaba movendo o arquivo para a pasta destino com o nome novo).
Logo, você está jogando dois arquivos na pasta destino.
Gostei + 0
29/03/2012
Alisson Santos
Gostei + 0
29/03/2012
Joel Rodrigues
1) primeiro renomeia e depois copia. Para renomear, não use DESTINO e sim ORIGEM no novo nome:
RenameFile(ORIGEM+Nome, ORIGEM+DBEmatricula.Text+A+extensao);
//copiar
2) Você copia e depois renomeia o arquivo que já foi movido:
//copiar
RenameFile(DESTINO+Nome, DESTINO+DBEmatricula.Text+A+extensao);
Acho o segundo mais interessante, pois você não altera o arquivo original.
Teste aí e veja no que dá. Mantenha-nos informados.
Gostei + 0
29/03/2012
Bruno Leandro
ou voce quer copiar com o mesmo nome e mudar o nome do arquivo de origem ?
para copiar com outro nome voce poderia usar assim
CopyFile(PChar(origem+Nome), PChar(destino+DBEmatricula.Text+A+extensao), False);
para renomear o arquivo de origem e copiar com o nome original tente assim
CopyFile(PChar(origem+Nome), PChar(destino+Nome), False);
RenameFile(origem+Nome, origem+DBEmatricula.Text+A+extensao);
Gostei + 0
30/03/2012
Frost
Obrigado a todos que estão me ajudando
Veja
RenameFile(DESTINO+Nome, DESTINO+DBEmatricula.Text+A+extensao); // Não renomea, não sei se é porque tom com o W7 ja dei permissão na pasta para o
programa.
RenameFile(origem+Nome, destino+DBEmatricula.Text+A+extensao); // desse jeito até renomeia a cada 3 uma não renomea
Gostei + 0
02/04/2012
Joel Rodrigues
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)