![]() |
Directorio actual
Necesito saber el directorio donde esta mi aplicacion delphi (.exe), por ejemplo, si el ejecutable esta en "c:\aplicacion" quisiera obtener este camino.
gracias |
ExtractFilePath(Application.ExeName)
|
ExtractDir(Application.FileName);
Por alli va el asunto no tengo delphi a mano para decirte bien, pero si no me equivoco es asi |
Pues respondimos al mismo tiempo ;)
|
Solo quiero aclarar, debido al título del hilo, que el directorio del ejecutable de tu aplicación, no necesariamente va a ser el "directorio actual", que en principio sería el que se coloque en el campo "iniciar en" de un acceso directo. Claro que si no se indica... serán el mismo, pero cabe la posibilidad que sean diferentes.
Cual de los dos es el que te interesa? |
Otra froma de obtener el directorio del ejecutable:
ParamStr(0); (de los viejos tiempos del DOS) // Saludos ¡Ah! Muy buena observación de jachguate. Si lo que buscas es el directorio actual, tal como indica el título del mensaje, puedes usar la función GetDir. |
Para completar lo dicho por roman, y para obtener solamente la ruta completa del ejecutable, al viejo estilo de DOS, y aprovechando las mejoras de Delphi...
ExtractFilePath(ExpandFileName(ParamStr(0))); :p Hasta luego. |
Esteeee, sip, tienes razón, se me olvidaba quitar el nombre del archivo. Pero ¿es necesario el ExpandFileName en este caso? Me parece que ParamStr siempre da la ruta expandida.
// Saludos |
Pues la verdad.. no se si es una mala maña, quizas producto de una experiencia del pasado, que simplemente se convirtió en costumbre... ahora no tengo delphi a mano para probarlo... pero si santiago14 o vos roman pueden sacarnos de la duda... sería excelente.
Saludos. |
Bueno, pues la ayuda de Delphi sólo indica:
Cita:
// Saludos |
ParmStr(0):C:\ARCHIVOS DE PROGRAMA\BORLAND\DELPHI5\BIN\PROJECT1.EXE
ExtractFilePath(ExpandFileName(ParamStr(0))):; C:\ARCHIVOS DE PROGRAMA\BORLAND\DELPHI5\BIN\ Creo que si lo que se pide es únicamente la ruta completa y no el nombre del ejecutable, hay que utilizar lo propuesto por JachGuate. Un Saludo. |
Cita:
// Saludos |
Cita:
|
He realizado pruebas en delphi4 y delphi7, y en los casos probados, el ExpandFileName no es necesario.
Los casos probados son:
Hay algun caso que se me haya escapado? |
¿ En que S.O. lo has probado, seria interesante probarlo en un Windows 95/98 ?
Saludos. |
Con Windows 98 funciona correctamente lo siguiente:
Código:
ShowMessage(ExtractFilePath(ParamStr(0))); C:\ARCHIVOS DE PROGRAMA\BORLAND\DELPHI5\BIN\ Un Saludo. |
De hecho sería un poco raro que se necesitara ExpandFileName. Al menos no estaría claro en qué casos ParamStr(0) da la ruta ya expandida y en qué casos no.
// Saludos |
Yo lo he probado únicamente con windows Me.
|
Directorio actual
Para sintetizar, agradezco a todos sus respuestas. Confirmo que con extractPathFile es suficiente y utilizando application.exeName obtengo el nombre del ejecutable, por lo cual evito lo de expandFileName y ParamStr.
Otra vez se los agradezco y he quedado mas que satisfecho con sus respuestas, ah, con respecto a una de las citas que pedia probar en varios sistemas operativos, yo tengo windows 2000, professional y delphi6 enterprise y funcionan perfectamente todas las instrucciones citadas a lo largo de este hilo. |
La franja horaria es GMT +2. Ahora son las 04:40:53. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi