Lectura y Escritura de un archivo al cargar Windows. C#

18/09/2008 - 00:28 por edwlondono | Informe spam
Saludos,
Tengo un inconveniente con una aplicacion Win32 desarrollada en C#, resulta
que en el proyecto tengo un proyecto Class Library que modifica la
instalacion con el fin de registrar unos ocx, y para escribir un key en el
registro de windows para que la aplicacion me inicie al iniciar Windows, como
la aplicacion lee un archivo de configuracion XML ubicado en la carpeta de
instalacion, al cargarlo windows no lee la ruta de la aplicacion sino en la
carpeta C:Documents and Settings y me muestra un mensaje que no encuentra el
archivo de configuracion por obvias razones, lo curioso es que si cierro y
vuelvo a abrir la aplicacion ahi si toma el archivo de la ruta esperada, si a
alguien le ha pasado esto y sabe como solucionarlo les agradezco.

PD. La ruta es dinamica y la tomo con Enviroment.CurrentDirectory
 

Leer las respuestas

#1 Alberto Poblacion
18/09/2008 - 08:24 | Informe spam
"edwlondono" wrote in message
news:
Tengo un inconveniente con una aplicacion Win32 desarrollada en C#,
resulta
que en el proyecto tengo un proyecto Class Library que modifica la
instalacion con el fin de registrar unos ocx, y para escribir un key en el
registro de windows para que la aplicacion me inicie al iniciar Windows,
como
la aplicacion lee un archivo de configuracion XML ubicado en la carpeta de
instalacion, al cargarlo windows no lee la ruta de la aplicacion sino en
la
carpeta C:Documents and Settings y me muestra un mensaje que no encuentra
el
archivo de configuracion por obvias razones, lo curioso es que si cierro y
vuelvo a abrir la aplicacion ahi si toma el archivo de la ruta esperada,
si a
alguien le ha pasado esto y sabe como solucionarlo les agradezco.

PD. La ruta es dinamica y la tomo con Enviroment.CurrentDirectory



Ah, ahí está tu error. El CurrentDirectory no es el directorio del
programa, sino el directorio activo, que puede ser distinto y de hecho es
frecuente que lo sea. Por ejemplo, si abres una ventana de comandos y haces
"cd c:\undirectorio", y una vez que estás dentro de c:\undirectorio tecleas
"c:\otrodirectorio\miprograma", tu programa arranca y su CurrentDirectory es
"c:\undirectorio" (no "c:\otrodirectorio").
Cuando lanzas un programa haciendo click sobre su "shortcut" en el menú
de inicio, de forma predeterminada el CurrentDirectory coincide con el
directorio del programa, pero esto se puede cambiar modificando las
propiedades del shortcut.
En resumidas cuentas, el CurrentDirectory depende de quién lanza tu
programa y cómo lo lanza, por lo que no es de extrañar que tenga un valor
distinto durante la instalación del que tiene cuando lo ejecutas tú.

Remedio: en lugar de Environment.CurrentDirectory, utiliza
Application.StartupPath.
Si no es una aplicación WinForms (y por tanto no tienes el objeto
Application) puedes usar Assembly.GetExecutingAssembly().Location.

Preguntas similares