Fórum Não consigo salvar arquivo no servidor da rede #420281

21/07/2012

0

Olá,

Estou usando o codigo abaixo para salvar um arquivo e ele funciona corretamente, o arquivo é salvo na pasta C:\ContasPDF da maquina:

CopyFile(PChar(ABREPDF.FileName), PChar(C\ContasPDF\ + edcodigo.Text + \ + ExtractFileName(abrePDF.FileName)), True)

Só que agora preciso instalar o programa em rede local e as estações vão ter que salvar o arquivo na pasta C:\ContasPDF no servidor da rede. Tentei fazer com o codigo abaixo mas não esta dando certo, alguem sabe por que? eu já coloquei a pasta C:\ContasPDF do servidor para compartilhar com as estações.

CopyFile(PChar(ABREPDF.FileName), PChar(NOME_DO_SERVIDOR:C\ContasPDF\ + edcodigo.Text + \ + ExtractFileName(abrePDF.FileName)), True)


Grato

Luiz Carlos
Luiz Carlos

Luiz Carlos

Responder

Posts

21/07/2012

Luiz Carlos

Desculpe, o codigo correto que estou usando para salvar no servidor é:

CopyFile(PChar(ABREPDF.FileName), PChar(NOME_DO_SERVIDOR:C\ContasPDF\ + edcodigo.Text + \ + ExtractFileName(abrePDF.FileName)), True)

Este codigo acima não esta funcionando para salvar o arquivo no servidor, alguem sabe por que?
i
Grato

Luiz Carlos
Responder

Gostei + 0

23/07/2012

Luiz Carlos

Alguem pode ajudar, agora tentei usando o codigo abaixo e tambem não funciona. Preciso fazer isso via CODIGO pois o programa sera colocado em um site para que o proprio usuario baixe e instale o programa, quer dizer, não sou eu que vou instalar e por isso não posso fazer via mapeamento de rede.

Var
NovoNome : String;

begin
\\ o nome do servidor esta no edServ
NovoNome := \\ + edServ.Text + \ContasPDF\ + EDCODIGO.Text + \ + ExtractFileName(FRMAGENDA.abrePDF.FileName);

\\ABREPDF é um opendialog
if ((not FileExists(NovoNome)) or (Application.MessageBox(PChar(Já existe um arquivo com este nome anexado ao contato, deseja substituir o arquivo existente?),
PChar(Confirmação),
MB_OKCANCEL + MB_ICONQUESTION) = mrOk)) and
(CopyFile(PChar(ABREPDF.FileName), PChar(NovoNome), false)) then
ShowMessage(Conta gravada com sucesso!);
end
else
showmessage(Nenhum arquivo foi selecionado);


Grato

Luiz Carlos
Responder

Gostei + 0

23/07/2012

Romulo Contro

que windows é o da outra maquina?

se for vista/7, tem que desativar o compartilhamento de rede com senha, ou então, colocar a senha toda vez que reiniciar o pc...

faz o seguinte... tenta acessar a pasta compartilhada da outra maquina que vc quer copiar, e verifica se pede senha... se pedir, este está sendo o problema... se não, aí é outra coisa...
Responder

Gostei + 0

23/07/2012

Luiz Carlos

Olá Romulo, quer dizer entao que o codigo que postei abaixo para salvar o arquivo no servidor esta correto?

Var
NovoNome : String;

begin
\\ o nome do servidor esta no edServ
NovoNome := \\ + edServ.Text + \ContasPDF\ + EDCODIGO.Text + \ + ExtractFileName(FRMAGENDA.abrePDF.FileName);

\\ABREPDF é um opendialog
if ((not FileExists(NovoNome)) or (Application.MessageBox(PChar(Já existe um arquivo com este nome anexado ao contato, deseja substituir o arquivo existente?),
PChar(Confirmação),
MB_OKCANCEL + MB_ICONQUESTION) = mrOk)) and
(CopyFile(PChar(ABREPDF.FileName), PChar(NovoNome), false)) then
ShowMessage(Conta gravada com sucesso!);
end
else
showmessage(Nenhum arquivo foi selecionado);

Grato

Luiz Carlos
Responder

Gostei + 0

23/07/2012

Romulo Contro

não cheguei testar ele nao, mas se vc disse que funciona pra salvar local, na rede também deverá funcionar...

eu notei que vc colocou sem aspas nas barras:
NovoNome := \\ + edServ.Text + \ContasPDF\ + EDCODIGO.Text + \ + ExtractFileName(FRMAGENDA.abrePDF.FileName);

no delphi tá com aspas?

e outra coisa, vc ja testou de acessar o diretorio pra ver se pede senha?


outra sugestão também é vc mapear a pasta compartilhada como uma unidade na maquina dos clients...

por exemplo, deixar lá a pasta compartilhada como H:\...
Responder

Gostei + 0

23/07/2012

Luiz Carlos

Romulo, as aspas sumiram qdo colei o Codigo aqui no post. Vou testar novamente lá na rede do cliente, mas se não der certo vou tentar o mapeamento da pasta na rede. Se eu colocar a pasta como H:, o codigo então ficaria assim correto?

//edserv.text vai conter a letra da pasta mapeada, neste caso H
NovoNome := edserv.text + :\ContasPDF\ + EDCODIGO.Text + \ + ExtractFileName(FRMAGENDA.abrePDF.FileName);

Grato

Luiz Carlos
Responder

Gostei + 0

23/07/2012

Rafael Mota

Já tentou colocar o IP do servidor no lugar do Nome?? Parece bobagem, mas já passei por problema parecido e resolveu....
Responder

Gostei + 0

24/07/2012

Romulo Contro

acredito que ficaria certo sim, se tiver com permissão pra copiar e tudo mais, não tem pq não dar certo...

mas qualquer coisa avisa aí!
Responder

Gostei + 0

26/07/2012

Luiz Carlos

Valeu Romulo, consegui resolver com o mapeamento da pasta no serivdor.

Grato

Luiz Carlos
Responder

Gostei + 0

27/07/2012

Romulo Contro

precisando tamo aí! :D
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar