Não consigo salvar arquivo no servidor da rede

Delphi

21/07/2012

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

Curtidas 0

Respostas

Luiz Carlos

Luiz Carlos

21/07/2012

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
GOSTEI 0
Luiz Carlos

Luiz Carlos

21/07/2012

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
GOSTEI 0
Romulo Contro

Romulo Contro

21/07/2012

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...
GOSTEI 0
Luiz Carlos

Luiz Carlos

21/07/2012

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
GOSTEI 0
Romulo Contro

Romulo Contro

21/07/2012

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:\...
GOSTEI 0
Luiz Carlos

Luiz Carlos

21/07/2012

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
GOSTEI 0
Rafael Mota

Rafael Mota

21/07/2012

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

Romulo Contro

21/07/2012

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í!
GOSTEI 0
Luiz Carlos

Luiz Carlos

21/07/2012

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

Grato

Luiz Carlos
GOSTEI 0
Romulo Contro

Romulo Contro

21/07/2012

precisando tamo aí! :D
GOSTEI 0
POSTAR