2010-07-25 11 views
6

Estoy implementando un controlador de URL personalizado en .NET. Para probar esto, he creado algunos archivos diferentes .url y los puse en mi escritorio. Esto generalmente funciona bien, pero se comporta de manera extraña si cambio el contenido del archivo, específicamente la línea URL=. Hacerlo no tiene ningún efecto: la antigua URL continúa abriéndose. Renombrar el archivo, sin embargo, funciona. El archivo tiene el siguiente aspecto:¿Windows almacena en caché el contenido de los archivos .url (acceso directo a Internet)?

[{000214A0-0000-0000-C000-000000000046}] 
Prop3=19,0 
[InternetShortcut] 
URL=myCustomScheme://some/url/pointing/somewhere 
IDList= 

todos los accesos directos que crear a través de Nuevo → Acceso directo reciben el mismo UUID, por lo cambiante que probablemente no será de ayuda.

¿Hay algún archivo .url interno/caché de asignación de URL en Windows?

+0

Acabo de probar esto con URL http en Windows XP y recogió los cambios.¿Estás seguro de que tu controlador funciona correctamente? – Luke

+0

Puedo reproducir esto con 'http:' URLs también. Windows 7, x64. –

+0

Hmm, parece que hay algún tipo de almacenamiento en caché en Windows 7. Lo curioso es que no siempre ocurre; a veces va a la nueva URL y, a veces, a la antigua. Parece que si cierra Internet Explorer y luego abre el acceso directo, va a la ubicación correcta. – Luke

Respuesta

1

Windows 7 Guarda en caché los nombres de tus archivos y algunas veces, como dijiste, los nombres de los archivos en ubicaciones específicas.

regedit en Inicio y buscar la siguiente

HKEY_USERS\S-1-5-21-x-x-x-x\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache 

donde S-1-5-21-x-x-x-x es el usuario actualmente conectado.

Allí puede ver que la mayoría de los archivos (o todos?) Se han almacenado en caché a los que haya accedido alguna vez.

Quizás también pueda desactivar MUICaching programáticamente. Tal vez este sitio te ayude: Disable Caching

0

Tuve un problema similar, y resulta que el culpable fue Firefox.

Si por casualidad su navegador web es Firefox, sus directorios de caché pueden estar dañados.

Puede crear un nuevo perfil, o tomar sus posibilidades de limpiar las cosas fuera de C:\Users\<username>\AppData\Local\Mozilla\Firefox\Profiles\<profile>\

1

tengo una razón para creer que los archivos de URL son interpretados por algunos componentes de Internet Explorer en el momento de la creación (no bíblica). Solo se interpretan inicialmente, la primera vez que se crea el archivo. No se confirmarán las modificaciones al archivo URL más adelante. Esto se debe a que el atajo no está almacenado en el archivo. Esta es la razón por la cual el archivo se puede modificar más tarde para que quede vacío, como un archivo de 0 bytes y el archivo URL parecerá estar funcionando de todos modos. Los datos de acceso directo se almacenan en el campo "Documento web" como una propiedad de archivo en el sistema de archivos NTFS. El archivo simplemente sirve para señalarlo. Es posible que pueda modificar estos campos de propiedad mediante programación, lo que supuestamente "editaría el archivo". Es un ejercicio doloroso simplemente editar lo que parece ser un simple archivo de texto.

Además, una vez que un nombre de archivo se ha utilizado para un archivo URL, no se puede reutilizar para nuevos archivos, sin importar en qué disco o ruta lo guarde. Por lo tanto, debe seguir asignando nombres de archivos únicos, nunca antes utilizados, para cada nuevo archivo URL que cree. Esto tiene que ver con cómo Internet Explorer almacena en caché el contenido web. Recuerda qué nombres de archivo ya se han utilizado y los asigna a direcciones URL definidas previamente. Para reutilizar un nombre (o cuando se le acaben las ideas para nombres de archivos nuevos y únicos), debe borrar los archivos temporales de Internet.

Windows 7: %localappdata%\Microsoft\Windows\Temporary Internet Files 
Windows 8: %localappdata%\Microsoft\Windows\INetCache 

Para responder directamente a su pregunta: sí, lo hace.

Cuestiones relacionadas