[C con Clase] Directorio de trabajo

Programante programante en gmail.com
Jue Ene 3 22:50:19 CET 2008


Jandro escribió:
> Hola a todos y Feliz Año!!
>
> Tengo un problemilla, mi programita lo primero que hace es abrir un  
> video.
> Pues bien desde que lo abro siempre k me refiero a algun directorio  
> de forma relativa (./directorio) siempre me lo hace a partir de el  
> directorio donde esta el video que he elegido.
>
> Como debo hacer para que cuando me refiera a algun fichero de forma  
> relativa sea desde donde ejecute el programa?
>
> Muchas gracias.
> Saludos.
> Jandro.
Todo programa tiene asociado un directorio de trabajo. Cuando lo lanzas 
desde la shell, es
el directorio en el que te encuentras al abrirlo. Cuando lo haces desde 
otro programa, tendrás
su mismo directorio de trabajo.
En windows, es común que los accesos directos establezccan el directorio 
de trabajo a la
carpeta del programa antes de llamarlo.
La solución es muy fácil y muy difícil: Tienes que hacer chdir() al 
directorio de tu programa.
Para obtenerlo, lo más sencillo es mirar en argv[0] el nombre de tu 
programa, pero no es 100%
seguro: pueden engañarte y darte un nombre distinto.
Bajo Windows puedes usar GetModuleFileName(NULL, Buffer, len) para 
obtener el nombre de tu
ejecutable.
Una vez tienes el nombre de tu programa, quitas el nombre del fichero y 
tienes la carpeta.





Más información sobre la lista de distribución Cconclase