Falta el archivo de la carpeta Datos de programa Vista
-
23-08-2019 - |
Pregunta
Tengo un programa VB6 legado que instala un archivo de Access en un subdirectorio de la carpeta de datos comunes (CSIDL_COMMON_APPDATA). Ahora he instalado este programa en un sistema de 64 bits de Vista, y el programa funciona bien y tiene acceso el archivo en C:. \ Datos de programa \ Wow \ WowCat.mdb, pero este archivo no aparece en el Explorador de Windows
Quiero sobrescribir esta base de datos, con una versión posterior, tomado de mi viejo PC, pero con el Explorador no puedo ver el archivo en C: \ Datos de programa \ Wow \ (estoy mostrando todos los archivos ocultos y de sistema). Si voy adelante y copiar los nuevos WowCat.mdb todos modos, el programa sigue funcionando con el antiguo.
Al entrar el código en VB, que es sin duda abre el archivo en: C: \ Datos de programa \ Wow \ WowCat.mdb. Buscando en la C: conducir sólo muestra la nueva copia, así que ¿dónde está el que el programa está accediendo
Solución
Esto es debido a la redirección de carpetas en Windows Vista. Si usted normalmente no tiene los derechos para escribir algo en el directorio C: \ Archivos de programa-carpeta, Vista silenciosamente redirigir esos escribe en una carpeta "secreta" dentro de su directorio de usuario. El archivo aún será visible para el usuario que creó el archivo (y todos los programas que se ejecutan como ese usuario), pero no será visible para nadie más. Por lo que su programa es probable ejecutando como un usuario diferente que Explorer es, y por lo tanto Explorer no puede verlo.
Vea la siguiente salida de dir / Al en mi Vista máquina de 64 bits:
C:\ProgramData>dir /aL
Volume in drive C has no label.
Volume Serial Number is 74DB-58F8
Directory of C:\ProgramData
02.11.2006 16:41 <JUNCTION> Application Data [C:\ProgramData]
02.11.2006 16:41 <JUNCTION> Desktop [C:\Users\Public\Desktop]
02.11.2006 16:41 <JUNCTION> Documents [C:\Users\Public\Documents]
02.11.2006 16:41 <JUNCTION> Favorites [C:\Users\Public\Favorites]
02.11.2006 16:41 <JUNCTION> Start Menu [C:\ProgramData\Microsoft\Windows\Start Menu]
02.11.2006 16:41 <JUNCTION> Templates [C:\ProgramData\Microsoft\Windows\Templates]
0 File(s) 0 bytes
6 Dir(s) 62 040 051 712 bytes free
La función se conoce como puntos o cruces de reanálisis, dependiendo de donde se lee acerca de ellos. Son muy similares a los enlaces simbólicos en Unix.
Otros consejos
Al hacer esto correctamente requiere un instalador MSI de Windows o el legado de instalación en funcionamiento elevado el crea una subcarpeta bajo CommonAppDataFolder, permite un control total para todos (o un grupo adecuado) para esta carpeta, y finalmente coloca su MDB allí. También puede crear la carpeta, mover el archivo MDB allí, y establecer permisos en un solo archivo.
También es posible que el EXE en sí para hacer esto en la primera ejecución si se ejecuta elevado o detecta la omisión y genera un proceso de elevada para hacer el trabajo. Normas dictan que esta acción debe ser iniciado a través de un elemento de menú o un botón con el icono del escudo UAC está representada sin embargo, y no sólo a aparecer un mensaje de UAC.
Es todo mucho más fácil a través de un paquete MSI sin embargo.