Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Desarrollo en Delphi para Android (https://www.clubdelphi.com/foros/forumdisplay.php?f=57)
-   -   Acceder carpetas windows desde android (https://www.clubdelphi.com/foros/showthread.php?t=93049)

viverosjosem 29-04-2018 05:12:40

Acceder carpetas windows desde android
 
Hola Amigos del foro.
Quisera saber si es posible crear una aplicacion Android, que sea capaz de leer y escribir un archivo de texto en una carpeta de windows. Estoy trabajando con delphi Tokyo 10.2.

E buscado informacion en internet, pero no e podido encontrar una instruccion o procedimiento para lograr esto.

De antemano.
Muchas gracias.

Casimiro Notevi 29-04-2018 11:15:34

Tienes varios métodos para hacerlo y con distintos protocolos, puedes usar ftp, samba, webservice, etc.
Podrás elegir el que más se adapte a lo que vayas a hacer.
Por lo que dices, aunque dices poco, parece que en tu caso será más aconsejable samba.

viverosjosem 29-04-2018 19:27:31

Hola Casimiri.
Agradesco tu respuesta. Pero no me ayuda. Lo que quiero es saber como hacerlo. Alguna instruccion, o algun fragmento de codigo para orientarme.
desarrolle una pequena aplicacion en android con delphi tokio. Pero necesito escribir un archivo de texto en una carpeta compartida de windows. Pero no se como hacer para que la aplicacion android pueda conectarse al equipo windows, y luego leer o escribir un archivo de texto simple en dicha carpeta compartida.

Alguna sugerencia.

Saludos.
Gracias de antemano.

viverosjosem 30-04-2018 07:07:32

Hola nuevamente.
Escribi este pequeno programa que hace uso de las librerias Indy, para conectarse a un servidor FTP.
funciona perfectamente si lo compilo y ejecuto para una plataforma windows. Pero cuando lo compilo para android, al ejecutarlo no permite conectarse al servidor.

Si voy al host en internet el archivo esta ahi. subido sin problema. Pero desde android, no se conecta.

Alguna idea de porque no funciona en ANDROID?

Saludos.
Gracias.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
   SubirArchivo( 'C:\Meson.TXT' );
end;

procedure  TForm1.SubirArchivo( sArchivo: String );
var
   FTP: TIdFTP;

begin
   FTP := TIdFTP.Create( nil );
   FTP.Host     := '190.1.....';  //Aqui el Host original 
   FTP.Username := 'xxxxx';       // Usuario
   FTP.Password := 'xxxxx';       // pasword

   try
     FTP.Connect;
     Label1.Caption := 'Estado: Conectado';

     FTP.ChangeDir( '/public_html' );
     FTP.Put( sArchivo, ExtractFileName( sArchivo ), False );
     FTP.Disconnect;
     FTP.Free;
     Label2.Caption := 'Archivo: Cargado exitosamente';

   except raise
      Exception.Create( 'No se ha podido conectar con el servidor ' + FTP.Host );

   end;
end;

Neftali [Germán.Estévez] 30-04-2018 09:28:49

Cita:

Empezado por viverosjosem (Mensaje 525957)
Pero cuando lo compilo para android, al ejecutarlo no permite conectarse al servidor.

Estaría bien saber algo más de información.
¿El error es seguro de conexión?
¿Cual es el error exactamente? "No se conecta", no es muy explicativo...
Es un servidor FTP/FTPS
...

Casimiro Notevi 30-04-2018 10:29:51

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 525960)
Estaría bien saber algo más de información.
¿El error es seguro de conexión?
¿Cual es el error exactamente? "No se conecta", no es muy explicativo...
Es un servidot FTP/FTPS
...


Además de lo comentado por Neftali, hay que añadir que ese código es "peligroso", me explico:

Código Delphi [-]
FTP.ChangeDir( '/public_html' );
FTP.Put( sArchivo, ExtractFileName( sArchivo ), False );   // Envías el fichero
FTP.Disconnect;  // ¡¡¡ Desconectas !!!  :/
FTP.Free;  //  Y liberas, cuando todavía puede que ni haya enviado y/o conectado  :O
Label2.Caption := 'Archivo: Cargado exitosamente';
Es probable que en la mayoría de ocasiones, desconectes la conexión antes de que suba el fichero.

La desconexión debe hacerse al terminar, o en el evento "AfterPut", para estar seguro de que ya terminó de subir el fichero.

viverosjosem 30-04-2018 18:24:50

Casimiro, y Neftali
agradesco sus comentarios. Tienen razon, me falto informacion.

Probare nuevamente, me asegurare de ver donde se produce el error y les comento.

asumi que no se conectaba al servidor, porque al ejecutar la aplicacion pasaba directamente al "except raise". pero dentro del "try" hay mas de una instruccion que podria fallar.

Esta tarde volvere a probar, y les comento los resultados.

Gracias.
Saludos.
Jose Miguel.

viverosjosem 01-05-2018 06:20:54

Hola nuevamente a todos.

Revise el programa mientras se ejecutaba, y si, se conectaba al servidor windows (Servidor FTP). El problema se presentaba porque estaba tomando el archivo desde una ubicacion windows: "SubirArchivo( 'C:\Meson.TXT' );", y no desde una ubicacion en el dispositivo Android: "SubirArchivo( '/sdcard/Download/Meson.TXT' );"

Corregi la linea de codigo. Y funciono perfectamente. Ahora puedo, desde un dispositivo Android, escribir y leer un archivo en una carpeta Windows.

Me queda solo darle seguridad a la rutina, y pulir detalles.

Gracias a Casimiro y Neftali por su ayuda.

Saludos.
Jose Miguel.

Casimiro Notevi 01-05-2018 11:08:00

Entonces tu pregunta inicial poco tenía que ver con el problema real, ya que tenías un sistema hecho, funcionando, y mediante FTP.
Para otra ocasión intenta ajustarte al problema real, poniendo el código fuente que usas, explicando exactamente el problema que tienes, etc. ya que de esa forma se te podrá ayudar mejor, ya sabes, como dice el compañero Neftali: "Más tiempo dedicado a la pregunta=Mejores respuestas."
De todas formas, me alegro de que lo hayas solucionado.
Y haz los cambios que te he indicado antes, ese código te dará problemas, lo raro es que te funcione hasta ahora.
Saludos.

viverosjosem 01-05-2018 21:49:26

Estimado Casimiro.
Mi pregunta inicial, mucho tenia que ver con la solucion encontrada.

Cita:

Hola Amigos del foro.
Quisera saber si es posible crear una aplicacion Android, que sea capaz de leer y escribir un archivo de texto en una carpeta de windows.
A lo cual tue respuesta fue:
Cita:

Tienes varios métodos para hacerlo y con distintos protocolos, puedes usar ftp, samba, webservice, etc.
Por lo cual sabiendo como funciona el protocolo FTP. fue la opcion que elegi. Configure un servidor FTP en mi equipo con windows. Luego hice el pequeno programa que mostre en este foro. Lo probe desde windows y funciono. Luego lo probe con Android y no funciono. Y luego de revisar detenidamente el programa vi un error en la linea de codigo desde donde sale el archivo en Android. Solucionado esto el programa funciono. Y como funciono, ahora tal como cite la primera vez. "Puedo desde una aplicacion Android, crear y leer un archivo en una carpeta Windows".

Lo que me queda por hacer ahora es perfeccionar esta porcion de codigo e incorporarlo a mi aplicacion Android. Y asi poder trabajar con mi aplicacion de manera trasparente y fluida entre android y Windows.

De todas maneras agradesco tus comentarios y los de Neftali, porque sin ellos, no habria llegado a esta solucion.

Gran Foro, y grandes integrantes.
Gracias.

Saludos.
Jose Miguel.

Casimiro Notevi 01-05-2018 23:05:27

Entonces perdona porque no te había entendido, pensé que ya lo tenías hecho y que después preguntabas cómo se podría hacer.
Aclarado ese punto, con FTP te obligas a instalar un servidor FTP (obviamente) en cada equipo con el que quieras comunicar.
Dependiendo de para qué lo vayas a usar, puedes usar samba, con el que podrás conectar con cualquier sistema, solamente compartiendo el directorio que quieras. Así podrás compartir ficheros entre distintos equipos sin necesidad de ningún software/servidor adicional.

ASAPLTDA 04-05-2018 13:59:27

Compartir Utilidad
 
Cita:

Empezado por viverosjosem (Mensaje 525972)
Hola nuevamente a todos.
Ahora puedo, desde un dispositivo Android, escribir y leer un archivo en una carpeta Windows.

Me queda solo darle seguridad a la rutina, y pulir detalles.

Saludos.
Jose Miguel.

Hola Podria compartir esta utilidad con todo el foro delphi? Gracias


La franja horaria es GMT +2. Ahora son las 01:43:17.

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