Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marostegan

[Resolvido] copiar imagem de um dir para outro

Recommended Posts

olá pessoal, aqui no sistema eu incluo fotos nos imoveis, porem eu precisava fazer com que as fotos ficassem sempre num diretorio... até ai ok, fiz tambem a programação pra quando a imagem nao estiver nese diretorio ele copia e caso tenha alguma com o mesmo nome ele deveria perguntar se deseja substituir ou não.

 

o fato é que está pronto isso, mas falta lguns ajutes:

 

só preciso ajustar o seguinte, quando ele verificar se a imagem já exite tem que dar a opção de subtituir SIM ou NAO!

 

o sim está pronto, mas como fazer o não?

 

aqui vai minha programação

 

var
  Origem,
  Destino :array[0..512] of Char;
  Sobrescreve : Boolean;
  Diretorio : String;
begin
  if OpenPictureDialog1.Execute then
  begin
	Diretorio := 'C:\listagem\images\'+ ExtractFileName(OpenPictureDialog1.FileName);
	if FileExists(Diretorio) then
	 else sobrescreve := MessageDlg('O arquivo já existe no destino. Deseja sobrescrevê-lo?', mtConfirmation, [mbOk], 0) = mrYes;
	  StrPCopy(Origem, OpenPictureDialog1.FileName);
	  StrPCopy(Destino, Diretorio);
	  CopyFile(Origem, Destino, Sobrescreve);
	  f_incluir_imoveis.Image1.Picture.LoadFromFile(Diretorio);
	  dm.t_fotos.Edit;
	  dm.t_fotos.Fields.FieldByName('img01').AsString := Diretorio;  // < === *** supondo nome campo CaminhoImg
	  dm.t_fotos.Post;
	  ShowMessage('Foto cadastada!');
  end;
end;

 

valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente o que você quer fazer quando selecionar o não?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente o que você quer fazer quando selecionar o não?

entao, se clicar em sim quero que substitua a imagem

 

 

se clicar em NAO quero que ele pegue a imagem atual do diretorio e insira

 

 

 

porem tem uma outra coisa.... vamos supor que eu estejapegando essa imagem do diretorio entao ele num precisa avisar que essa imagem jah exista (pq afinal, estou pengando de la)...

 

entao ele só dvera verificar se a imgem exista no diretorio caso eu esteje pegando a imagem de outro local...

 

nao sei se consegui explica...

 

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou por um algoritmo aqui para ver se entendi certo o que quer fazer... depois vemos como fazer o código se for isso mesmo.

 

Usuário seleciona a imagem
Se imagem selecionada for do diretório destino então faça
	 Abrir imagem e sair
	 FIM
Senão faça
	 Checar o diretório destino se existe imagem com o nome
	 Se imagem existir então faça
		  Perguntar se quer substituir imagem
		  Se resposta for sim então faça
			   Deletar imagem antiga da pasta destino
			   Copiar a nova imagem para o local
			   Abrir Imagem
		  Fim
		  Se a resposta for não então faça
			   Selecionar e abrir imagem da pasta destino
		  FIM
	 FIM
FIM

Seria mais ou menos isso o que você quer fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou por um algoritmo aqui para ver se entendi certo o que quer fazer... depois vemos como fazer o código se for isso mesmo.

 

Usuário seleciona a imagem
Se imagem selecionada for do diretório destino então faça
	 Abrir imagem e sair
	 FIM
Senão faça
	 Checar o diretório destino se existe imagem com o nome
	 Se imagem existir então faça
		  Perguntar se quer substituir imagem
		  Se resposta for sim então faça
			   Deletar imagem antiga da pasta destino
			   Copiar a nova imagem para o local
			   Abrir Imagem
		  Fim
		  Se a resposta for não então faça
			   Selecionar e abrir imagem da pasta destino
		  FIM
	 FIM
FIM

Seria mais ou menos isso o que você quer fazer?

 

na mosca!!

 

é isso ai mesmo que eu preciso! =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mals a demora, meu serviço andou uma loucura estes dias e só agora consegui fazer o código pra postar aqui pra você...

 

procedure TForm1.Button1Click(Sender: TObject);
var Diretorio : String;
	Origem,
	Destino :array[0..512] of Char;
begin
  if OpenPictureDialog1.Execute then
  begin
	 Diretorio := 'C:\listagem\images\'+ ExtractFileName(OpenPictureDialog1.FileName);
	 //Verifica se o arquivo selecionado pelo OpenDialog1 já existe no diretório de destino
	 if FileExists(Diretorio) then
	 begin
		if MessageDlg('O arquivo ' + ExtractFileName(OpenPictureDialog1.FileName) + ' já existe no destino. Deseja sobrescrevê-lo?', mtConfirmation, [mbYes, mbNo], 0) = IDYes then
		begin
		   //Apaga o arquivo no diretório de destino
		   //e depois salva o arquivo selecionado
		   DeleteFile(Diretorio);
		   StrPCopy(Origem, OpenPictureDialog1.FileName);
		   StrPCopy(Destino, Diretorio);
		   CopyFile(Origem, Destino, True);
		end;
	 end
	 else
	 begin
		StrPCopy(Origem, OpenPictureDialog1.FileName);
		StrPCopy(Destino, Diretorio);
		CopyFile(Origem, Destino, True);
	 end;
	 f_incluir_imoveis.Image1.Picture.LoadFromFile(Diretorio);
	 dm.t_fotos.Edit;
	 dm.t_fotos.Fields.FieldByName('img01').AsString := Diretorio;  // < === *** supondo nome campo CaminhoImg
	 dm.t_fotos.Post;
	 ShowMessage('Foto cadastada!');
  end;
end;

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá amigo... esquenta nao!!!

 

bom, eu nao vou poder testar esse codigo, pq vendi meu note e o novo que comprei só chega sexta, e aqui na agencia durante o dia eu tenho um monte de outras coisas pra resolver... ai soh sobra anoite pra programar... mas sem note! =//

 

mas assim que chegar eu retornarei aos projetos e vou testar essa programação e dai posto aqui o resultado...

 

brigadão pela força!!

 

 

abraçoss!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom dia amigo!!

 

poxa... agora cedo sobrou um tempo aqui na agência testei essa programação!!

 

era exatamente isso que eu precisava...

 

MUUIITTOOO obrigado pela força!!! =DDD

 

 

funciono certinho!!

 

 

abraçoss!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.