Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Copiar un archivo desde un computador a otro (https://www.clubdelphi.com/foros/showthread.php?t=67913)

Ricardo2010 13-05-2010 16:09:14

Copiar un archivo desde un computador a otro
 
Buenas, trabajo con D2009 y tengo el siguiente problema, la aplicación copiaba documentos desde un equipo (Cliente) a otro (servidor). sin problemas Esto lo efectua con las siguientes instrucciones

Código Delphi [-]
if MessageDlg(Msg, mtCustom, mbOKCancel, 0) = mrOK then
begin
OldFile := TFileStream.Create(
OldFileName, fmOpenRead or fmShareDenyWrite);
try
NewFile := TFileStream.Create(
NewFileName, fmCreate or fmShareDenyRead);
try
NewFile.CopyFrom(OldFile, OldFile.Size);
finally
FreeAndNil(NewFile);
end;
finally
FreeAndNil(OldFile);
end;
end;
Esta funciona correctamente, el problema que tengo es que se decidio traspasar el directorio a otro servidor , de este se sabe completa la ruta (path) pero el sistema no llega ya que debe autentificarse para ingresar, el usuario y contraseña la tengo.

Tengo el path, usuario y contraseña para identificacion, la pregunta es como hago para que internamente a traves de D2009 se conecte al servidor.

Si yo por fuera llamo al path me solicita el usuario/contraseña para ingresar se las doy y el sistema nuevamente vuelve a funcionar, este acto como lo hago internamente a traves de la aplicacion

manuc 13-05-2010 21:32:41

Hola Ricardo2010,

¿Cabría la posibilidad de mapear una unidad de red al directorio compartido del servidor?

Existen por aquí código para conectar una unidad de red a tu servidor, desde Delphi. Una vez conectada la unidad, podrías operar con ella, para copiar los ficheros que necesitas.

Un saludo.

Ricardo2010 13-05-2010 22:22:58

Sucede que los usuarios son mas de 5000 y se conectan por distintas formas algunos por citrix otros por terminal server, por eso queria ver la posibilidad de yo invocar internamente la aplicacion de windows para conectar una unidad y pasarle los parametros de usuario y contraseña cosa que el usuario que esta en la aplicacion no se de cuenta.

Todo funcionaba correctamente hasta que se les ocurrio separa la carpeta donde quedaban los doctos por un tema de espacio.

Existe de alguna forma que el usuario cuando ingrese a la aplicacion delphi pueda internamente crear este map, claro esta que no se de cuenta. El administrador de red dio el usuario y contraseña para que siempre utilice la misma internamente , estas son distintas al usuario que se conecta a la red y tambien distinta al usuario que se conecta a la aplicacion .

cloayza 14-05-2010 02:00:31

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
   NetResource: TNetResource;
begin
   
   NetResource.dwType := RESOURCETYPE_DISK;
   //Letra con la cual sera mapeado el recurso
   NetResource.lpLocalName := 'M:';
   //Nombre del recurso
   NetResource.lpRemoteName := '\\Servidor\Carpeta_Compartida';
   NetResource.lpProvider := '';
   WNetAddConnection2(NetResource, 'Password','Usuario', CONNECT_UPDATE_PROFILE);
end;

A ver como te va con esto...

Saludos

cloayza 14-05-2010 14:51:04

Y para desconectar de la unidad seria...

Código Delphi [-]
WNetCancelConnection2('M:', CONNECT_UPDATE_PROFILE, True);

Saludos...

Ricardo2010 14-05-2010 19:01:51

gracias lo probare y les cuento

Ricardo2010 18-05-2010 22:43:17

Probe lo que me dices cloayza y funciona perfocto.

Gracias nuevamente.

petete2008 27-12-2011 23:05:00

¿como sería en el caso de quere mapear una dirección ftp?
Por ejemplo asignar la unidad Z al ftp://pruebas.es

Gracias


La franja horaria es GMT +2. Ahora son las 00:26:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi