Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Encontrar ruta de archivo en Datos de Programa (https://www.clubdelphi.com/foros/showthread.php?t=65091)

vejerf 19-11-2009 13:27:06

Encontrar ruta de archivo en Datos de Programa
 
Hola a todos,

Estoy realizando una aplicación basada en Google Earth. GE carga de inicio un fichero llamado myplaces.kml que almacena en una carpeta oculta en Datos de Programa los datos que necesita y las cosas que nosotros almacenamos. Pues bien yo quiero acceder a esta carpeta desde mi aplicación, el problema es que la ruta del fichero depende del PC, pues es:
C:\Documents and Settings\NombreUsuarioSesion\Datos de programa o Application Data\Google

Pues lo que necesito es saber como puedo averiguar cual es esta ruta para cada PC: Nombre de usuario de sesión, si la carpeta es Datos de programa o Application Data...

Gracias a todos!!!

gerardus 19-11-2009 13:37:19

Hola,

puedes usar la función SHGetFolderPath del API de Windows.
Aquí tienes un ejemplo:
http://delphi.about.com/od/kbwinshel...FolderPath.htm

Saludos,

Gerard

vejerf 19-11-2009 16:57:54

Muchísimas gracias!!!
 
Muchas gracias por la referencia que me has dado. Es precisamente lo que buscaba. Con el ejemplo y buscando el CSIDL en la ayuda de Delphi he conseguido obtener la ruta que deseaba.

Gracias de nuevo!!!

Ñuño Martínez 20-11-2009 10:16:37

No sé si Delphi lo tiene, pero Free Pascal incluye la función GetAppConfigDir Aunque en principio devuelve la ruta del directorio donde guarda la configuración, en Windows el directorio con la configuración "global" suele coincidir con el directorio de instalación y el de configuración "local" suele coincidir con el directorio "de usuario".

Así mismo existe la función GetCurrentDir que, en el caso de Windows y si ejecutas desde el menú del sistema, suele ser el directorio de instalación, salvo que se cambie con SetCurrentDir o se ejecute desde consola.

La ventaja de estos métodos frente a SHGetFolderPath es que si en el futuro decides pasarte a otro sistema operativo (MacOS, BSD, Linux, BeOS...) te será más fácil, ya que esta última función es exclusiva de Windows.

gerardus 20-11-2009 11:18:06

La pregunta es si usa Delphi o FPC+Lazarus.
Que yo sepa Delphi no tiene GetAppConfigDir (no lo necesita, al no ser multiplataforma).
Por cierto, FPC para Win32 tambien usa HGetFolderPath.

Saludos,

Gerard.


La franja horaria es GMT +2. Ahora son las 22:38:14.

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