FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Ruta/Dirección/Path en PC Remoto
Hola Compañeros! Agradecería vuestra ayuda.
A ver si sé explicarme. Tengo una red doméstica entre mi PC sobremesa y el portátil. Tengo un programa instalado en el PC sobremesa y lo quiero ejecutar desde el portátil. Bueno, hasta aquí no hay problema, he conseguido ejecutarlo. Cuando uso ficheros que están en el directorio del programa, no tengo problemas en leerlos y grabarlos desde el portátil, como si estuviera en el de sobremesa, vamos. El problema surge cuando tengo que usar un fichero con una path determinada en el PC sobremesa o cuando quiero utilizar GetCurrentDir, que me proporciona una dirección que luego me da error al utilizarla. P.e.: al buscar archivos del directorio actual me proporciona una dirección como la siguiente \ |
#2
|
|||
|
|||
No se qué pasó.
No se incorporó la mitad de mi post. Acabo de verlo ahora, disculpadme. Justo después de las dos barras inversas "\\" se perdió TODO lo que había escrito. Vuelvo a escribir todo el mensaje. Hola Compañeros! Agradecería vuestra ayuda. A ver si sé explicarme. Tengo una red doméstica entre mi PC sobremesa y el portátil. Tengo un programa instalado en el PC sobremesa y lo quiero ejecutar desde el portátil. Bueno, hasta aquí no hay problema, he conseguido ejecutarlo. Cuando uso ficheros que están en el directorio del programa, no tengo problemas en leerlos y grabarlos desde el programa ejecutado en el portátil, como si estuviera en el de sobremesa, vamos. El problema surge cuando tengo que usar un fichero con una path determinada en el PC sobremesa o cuando quiero utilizar GetCurrentDir, que me proporciona una dirección que luego me da error al utilizarla. P.e.: al buscar archivos del directorio actual me proporciona una dirección como la siguiente "\ \ PC1\Dir1\fichero.ext" (Pongo las barras invertidas separadas, para que no me pase lo mismo. Esta es la path facilitada por GetCurrentDir) "PC1" es el nombre asignado al PC de sobremesa, "Dir1" es el nombre asignado al directorio compartido, donde reside el ejecutable. "fichero.ext" es el nombre de cualquier fichero en el "Dir1" Cuando intento utilizar la Path recibida para copiar un fichero, (dentro del mismo directorio compartido, pero con otro nombre) con el siguiente procedimiento, no realiza la acción.
El mismo problema se manifiesta en otra fase del programa, donde intento hacer una copia de seguridad a un subdirectorio, dentro del directorio donde está ubicado el ejecutable. En un fichero tengo almacenada la dirección donde el usuario ha elegido hacer la copia de seguridad. (Puede ser en el mismo directorio y PC, como es el caso, o en otro PC de la red, que no lo he probado) Bien, la dirección es del tipo: "C:\MiPrograma\CopySegu" DirectoryExists("C:\MiPrograma\CopySegu") responde que no existe (aunque exista) MKDir("C:\MiPrograma\CopySegu") da Error #21 (no sé qué significa, pero supongo que será que no encuentra la path) Y aquí estoy. No sé como direccionar desde Delphi7 los ficheros que residen en un PC de la red. CREO QUE ES OBVIO DECIR QUE TODO FUNCIONA PERFECTAMENTE SI NO ESTA EN RED. Es la primera vez que voy a intentar utilizar un programa en red local y estoy bastante perdido. Agradeceré cualquier sugerencia o ayuda. Saludos. |
#3
|
||||
|
||||
Cita:
Con relación al Error # 21 tampoco sé que significa. Pero pueden ser dos cosas: 1) que la ruta "C:\MiPrograma\" no exista o 2) que la aplicación no tenga permisos para crear carpetas en la raiz C:\. Cita:
Por último, podrías detallar un poco más los errores que está generando la aplicación. Saludos, Chris |
#4
|
|||
|
|||
Gracias Chris, por leerme y por querer ayudarme.
El "otro nombre" se refiere a que el mismo fichero (P.e: "fichero.txt" le duplico para hacer copia de seguridad con el nombre "fichero2.txt", pero en el mismo directorio del ejecutable. No sé muy bien como funciona esto, ¿quieres decir que, aunque el programa ejecutable está en el PC de sobremesa, si yo le doy una ruta, la va a buscar en el portátil, desde el que ejecuto el programa? Sin embargo, el resto de ficheros que no direcciono, sino dejo por defecto los está escribiendo corrrectamente en el PC de escritorio. Y cuando le pido GetDir() o GetCurrentDir, me facilita una ruta con los datos de los nombres de la red, pero luego no puedo utilizarla para acceder a ellos, ni en el mismo directorio del ejecutable. Ya te dije que entiendo poco de esto, si puedes o conoces algún manual rápido de redes locales, te agradezco me lo indiques y así resolver las cuestiones, que pueden ser triviales si las conoces, pero insalvables si no las cononoces. Gracias de todos modos. Chris. Un saludo. |
#5
|
||||
|
||||
Hola jhonalone.
Supongamos que el equipo donde se encuentra el programa se llama DESKTOP y tu portátil NOTEBOOK. También supongamos que el programa se encuentra en la ubicacion: C:\MiPrograma. Bién, ahora la ubicación que devuelva GetCurrentDir, es relativa al equipo que esté ejecutando la aplicación, por ejemplo la instrucción: . Ejecutada desde DESKTOP mostrará: C:\MiPrograma . Ejecutada desde NOTEBOOK mostrara: \\DESKTOP\MiPrograma El problema es que si desde NOTEBOOK haces una una copia usando la cadena: 'C:\MiPrograma', estas haciendo referencia al disco C: de NOTEBOOK y no de DESKTOP. No es una idea inteligente espejar los directorios para solapar el error, por que cuando pienses que estas copiando en DESKTOP lo harás en NOTEBOOK. Para verificarlo, podés realizar una simple prueba: Una aplicación con un TButton y el siguiente código:
.Ejecutado desde DESKTOP, realiza la copia sin problemas. .Ejecutado desde NOTEBOOK muestra el mensaje: 'ERROR. No se pudo realizar la copia'. Eso sucede por que la aplicación no puede saber desde donde fué ejecutada. Saludos. Edito: Ya me olvidaba... : I/O Error 21: ERROR_NOT_READY (The device is not ready)
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 08-08-2011 a las 10:27:10. Razón: Agregar comentario |
#6
|
|||
|
|||
Gracias, Ecfisa.
¡Qué grande eres y que bien te explicas! No te he respondido antes porque he estado probando. Si no he comprendido mal, cuando quiera referirme desde NOTEBOOK, a una dirección de DESKTOP, deberé sustituir, (siguiendo tu ejemplo) C:\MiPrograma por \\DESKTOP\MiPrograma y siguiendo esta lógica, C:\Ejemplo\Primero\MiPrograma SE DEBERÍA CAMBIAR por \\ DESKTOP\Ejemplo\Primero\MiPrograma ¿y los problemas de direcciones en red se solucionarían de este modo? Gracias por tu esfuerzo y por tu ayuda. Saludos. |
#7
|
||||
|
||||
Hola jhonalone.
Cita:
Ahora fuera de bromas, lo que creo que al trabajar de ese modo, vas a tener que efectuar todas tus acciones desde la ubicación de la aplicación. Ya que es el único punto de referencia en común entre DESKTOP y NOTEBOOK. Es decir que tu centro de operaciones debería ser: Desde el equipo de escritorio (DESKTOP): C:\MiPrograma o ya sea, visto desde la laptop (NOTEBOOK): \\DESKTOP\MiPrograma No estoy en red para probar el código siguiente, pero pienso que debería funcionar en ambos equipos. Ubicándonos en DESKTOP, y suponiendo que tenemos: C:\MiPrograma\arch1.e1 y quisieramos guardar arch1.e1 en la carpeta C:\MiPrograma\Dir : Pero como te dije arriba vas a tener que probarlo, no tengo manera de hacerlo ahora. Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 08-08-2011 a las 19:51:11. Razón: Agregar comentario |
#8
|
|||
|
|||
Aun quitando la lupa, eres GRANDISIMO, Ecfisa.
Probaré lo que me mandas y te cuento. Mientras tanto. Y si quieres entretenerte, te voy a proponer otra cuestión, que es para nota, (Bastante más complicada). Si un usuario, elige como ruta de destino para los ficheros de copia de suguridad otro ordenador de la red, que no sea DESKTOP, sino otro portátil o sobremesa, conectado como NOTEBOOK2 o DESKTOP2, y esta dirección está grabada en un fichero, por ejemplo como "\\ DESKTOP2\Compartido", ¿Habría alguna posibilidad de averiguar, (desde DESKTOP), a qué dirección REAL corresponede y cómo puedo grabar las copias de seguridad en esta dirección, desde NOTEBOOK?. Sé que es una pregunta muy complicada, (a lo mejor imposible de resolver), te pido que no gastes demasiado tiempo en resolverla si ves que es muy complicada. Gracias por tu inestimable ayuda, Ecfisa. Un saludo cordial. |
#9
|
|||
|
|||
Ecfisa, he probado tu código y funciona perfectamente. (NO esperaba otra cosa)
Gracias. Un saludo. |
#10
|
||||
|
||||
Este ecfisa ya empieza a caerme mal, ¿es que sabes todo de todo?
__________________
Be water my friend. |
#11
|
|||
|
|||
Estaré fuera unos dias.
Pero no he olvidado el tema. Lo digo por si tardo en responderos es por este motivo. Saludos a todos. |
#12
|
|||
|
|||
Cita:
siempre me regresa el error de que no se pudo copiar, me podrias comentar si algo esta mal? lo hago desde la linea de comandos y si lo ejecuta mm gracias salu2 |
#13
|
|||
|
|||
jejej ya logre que funcionara, pero ahora lo necesito integrara mi aplicacion pero cuando lo quiero ejecutar no me deja por que el programa esta en uso, me podrian recomendar algo??? gracias
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Path del recurso compartido remoto | jaimeh | Varios | 1 | 21-05-2010 13:48:05 |
The path could no be found (no se encentra la ruta) | Lucas_diaz1810 | Conexión con bases de datos | 4 | 20-09-2007 20:58:53 |
Obtener direccion , ruta completa de mi programa | Peterman | Varios | 8 | 08-06-2007 13:25:13 |
Problemas con los Path | marceloalegre | Varios | 4 | 29-04-2005 14:17:32 |
path de un alias | carlomagno | Conexión con bases de datos | 1 | 28-04-2005 14:57:11 |
|