Hola,
No termino (ni empiezo) de entender cómo funciona el sistema de archivos y permisos en Windows Vista. Les planteo la situación a ver si ustedes entienden.
Tengo una aplicación, llamada ExCol, que tiene su propio instalador hecho con InnoSetup. Dicha instalación crea un directorio
excol en Archivos de programa (o, mejor dicho, Program Files) quedando así la estructura de archivos
Código:
excol
|
+-- data
| |
| +-- aciertos.cds
| +-- claves.cds
| +-- criterios.cds
| +-- respuestas.cds
|
+-- excol.exe
Los archivos cds son tablas para componentes ClientDataSet.
Este programa lo he instalado en mi pc en diversas ocasiones y hoy tocaba actualizar los datos.
Pues bien, al momento de ejecutar el programa me percato que los datos no corresponden a los actuales. Para probar, quito los archivos aciertos.cds y respuestas.cds (que, en realidad, son los que se actualizan) y al ejecutar el programa, tan campante, ni se queja y sigue trabajando como si nada con quién sabe qué archivos. Incluso pongo en el código un
Código Delphi
[-]ShowMessage(cdsAciertos.FileName);
que muestra que el FileName apunta a excol\data\aciertos.cds, ¡que es uno de los que acabo de borrar!
Ahora bien, si ejecuto el programa como Administrador, entonces sí que se queja de que dichos archivos no existen. Más aún, si vuelvo a colocar los archivos y ejecuto como administrador, ¡aparecen los nuevos datos!
O sea, que al parecer, Windows Vista maneja dos (o más) copias de un mismo archivo, según cómo se ejecute la aplicación.
He de decir que esto me parece estúpido, pero no es la primera vez que lo noto. Ya con el BDE he notado que según como acceda, usa distintas versiones del archivo de configuración.
¿Alguien sabe qué sucede y cómo lidiar con ello?
// Gracias