PDA

Ver la Versión Completa : Sobre la ruta completa de un EXE


oscjae
21-07-2006, 16:09:51
Wenas, no se si es aqui donde debo preguntar esto, creo que si.
La cuestion es que tengo un acceso directo de un EXE que esta en otro equipo, en el escritorio, la direccion que me sale con ExtracFilePath es "//Servidor/Programa/programa.exe", el problema viene cuando el ejecutable esta en una unidad que no es la del sistema operativo, por ejemplo, D:\Principal\Programa\programa.exe, como puedo saber a partir de la direccion de antes "//Servidor/Programa/programa.exe" o "//Servidor/Principal/Programa/programa.exe", la unidad en la que esta el ejecutable, y la ruta completa, ya que puede estar compartido el directorio final en el ejemplo "Programa"

Mick
21-07-2006, 19:42:48
No se puede saber, por lo menos desde el ordenador cliente.

El ordenador cliente solo conoce la ruta de red, pero la letra de unidad en el ordenador servidor no se puede saber, podria hasta
no existir (si por ejemplo el servidor que comparte los archivos usa un sistema operativo distinto a windows como unix o linux en los
que no existen letras de unidad).

Lo unico que se me ocurre para que necesites saber la ruta real es que quieras conectar con una base de datos como interbase o firebird
a las que se le debe indicar la ruta fisica de la base de datos. Pero desgraciadamente por lo que he explicado antes no se puede deducir,
asi que la opcion que tienes es escribir en algun archivo .ini o de configuracion la ruta fisica a la base de datos, y que desde el cliente el programa lea ese
archivo de configuracion para saber ese dato. Otra opcion es que crees un ALIAS a la base de datos en el servidor (en el caso de que uses firebird),
de modo que de ese modo no necesitas saber la ruta para conectar con la base de datos, basta saber el nombre del ALIAS que
le hayas dado.

Saludos

oscjae
23-07-2006, 21:40:00
Gracias por responder, imaginaba lo que me has comentado, que no se puede saber, es como tu dices para conectar una base de datos firebird, lo del fichero ini ya lo he probado, pero tampoco puedo leerlo por el mismo problema de antes, y sobre el alias, no puedo leer en el registro de windows del supuesto servidor, que es donde se crea el alias, el alias se crea en el equipo donde estes ejecutando la aplicacion, en un principio no hay alias en el terminal desde donde estoy ejecutando la aplicacion, y lo que yo queria era precisamente crear ese alias a partir de la ruta del acceso directo, pero vamos, que por lo que veo, a no ser que el programa este en la unidad donde esta el sistema operativo, que en ese caso va bien, pues tendre que preguntar al usuario que introduzca la ruta de la base de datos, no veo otra solucion, gracias por responderme

Mick
24-07-2006, 13:38:05
Un fichero de configuracion se puede leer sin problemas a traves de la red,
a windows le da igual acceder a un archivo poniendo
d:\loquesea\archivo
o
\\servidor\loquesea\archivo

Si no te funciona tienes que estar haciendo algo de forma incorrecta, postea el codigo de lectura del archivo de configuracion y podremos
ver cual es el problema.

Saludos

dec
24-07-2006, 13:51:11
Hola,


a windows le da igual acceder a un archivo poniendo

d:\loquesea\archivo

o

\\servidor\loquesea\archivo


Parece raro... si todavía el archivo INI (por ejemplo) estuviera en la carpeta de Windows o en la del sistema,... pero, si no, me extraña. Ojo, que no digo que no se pueda, que de esto y de otras cosas sabemos tú mucho más que yo. :D

Lepe
24-07-2006, 17:18:08
Comprobado lo dicho por Mick

He abierto archivos ini a través de una red local.
Borrado archivos con DeleteFile.
Crear Archivos con un simple SaveToFile del TStringList.
Y por supuesto comprobar si existe (FileExists).

Saludos

oscjae
25-07-2006, 12:36:15
Si, teneis razon, puedo leer el fichero INI, de configuracion, lo estaba haciendo mal.
Pues tendre que hacerlo de esa forma, ya que veo que es la unica, gracias por las respuestas
Salu2 a to2