2010-07-25 6 views
6

J'implémente un gestionnaire d'URL personnalisé dans .NET. Pour tester cela, j'ai créé quelques différents fichiers .url et les mettre sur mon bureau. Cela fonctionne généralement bien, mais se comporte bizarrement si je change le contenu du fichier, en particulier la ligne URL=. Cela n'a aucun effet - l'ancienne URL continue d'être ouverte. Renommer le fichier, cependant, fonctionne. Le fichier ressemble à ceci:Est-ce que Windows met en cache le contenu des fichiers .url (Internet Shortcut)?

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

Tous les raccourcis que je crée par Nouveau → Raccourci reçoivent le même UUID, en changeant ce qui va probablement pas aider.

Existe-t-il un cache interne de mappage de fichier/URL .url dans Windows?

+0

Je viens de tester cela avec des URL http sur Windows XP et il a pris les changements.Êtes-vous sûr que votre gestionnaire fonctionne correctement? – Luke

+0

Je peux aussi reproduire ceci avec les URL http: '. Windows 7, x64. –

+0

Hmm, il semble y avoir une sorte de mise en cache sur Windows 7. Ce qui est drôle, c'est que ça n'arrive pas à chaque fois; parfois, il va à la nouvelle URL et parfois l'ancienne URL. Il semble que si vous fermez Internet Explorer et lancez le raccourci, il va au bon endroit. – Luke

Répondre

1

Windows 7 Met en cache vos noms de fichiers et parfois, comme vous l'avez dit, les noms de fichiers dans des emplacements spécifiques.

Démarrer regedit et recherchez les éléments suivants

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

où S-1-5-21-x-x-x-x est votre utilisateur actuellement connecté.

Vous pouvez voir que la plupart des fichiers (ou tous les fichiers?) Ont été mis en cache auxquels vous avez déjà accédé.

Peut-être que vous pouvez également désactiver le MUICaching par programme. Peut-être que ce site vous aide: Disable Caching

0

J'ai eu un problème similaire, et il se trouve que le coupable était Firefox.

Si par hasard votre navigateur Web est Firefox, vos répertoires de cache peuvent être corrompus.

Vous pouvez créer un nouveau profil, ou prendre vos chances de nettoyer les choses de C:\Users\<username>\AppData\Local\Mozilla\Firefox\Profiles\<profile>\

1

J'ai une raison de croire que les fichiers d'URL sont interprétées par un composant d'Internet Explorer au moment de la création (non biblique). Ils sont seulement interprétés initialement, la première fois que le fichier est créé. Toute modification ultérieure du fichier URL ne sera pas validée. C'est parce que le raccourci n'est pas stocké dans le fichier. C'est pourquoi le fichier peut être modifié plus tard pour qu'il devienne vide, sous la forme d'un fichier de 0 octet et le fichier d'URL semblera fonctionner de toute façon. Les données de raccourci sont stockées dans le champ "Document Web" en tant que propriété de fichier dans le système de fichiers NTFS. Le fichier sert simplement à l'indiquer. Vous pourriez être en mesure de modifier ces champs de propriétés par programme, ce qui serait supposé "éditer le fichier". C'est un exercice pénible juste pour éditer ce qui semble être un simple fichier texte.

En outre, une fois qu'un nom de fichier a été utilisé pour un fichier URL, il ne peut pas être réutilisé pour les nouveaux fichiers, quel que soit le disque ou le chemin d'accès dans lequel vous l'avez enregistré. Vous devez donc continuer à attribuer des noms de fichiers uniques, jamais utilisés auparavant, pour chaque nouveau fichier URL que vous créez. Cela a à voir avec la façon dont Internet Explorer met en cache le contenu Web. Il se souvient des noms de fichiers déjà utilisés et mappe ces noms sur des adresses URL définies précédemment. Pour réutiliser un nom (ou lorsque vous n'avez plus d'idées pour des noms de fichiers nouveaux et uniques) vous devez effacer les fichiers Internet temporaires.

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

Pour répondre directement à votre question: oui, oui.