Кэширует ли Windows содержимое файлов .url (ярлык Интернета)? - PullRequest
7 голосов
/ 25 июля 2010

Я реализую собственный обработчик URL в .NET. Чтобы проверить это, я создал несколько разных .url файлов и поместил их на рабочий стол. Обычно это работает нормально, но ведет себя странно, если я изменяю содержимое файла, в частности строку URL=. Это не имеет никакого эффекта - старый URL продолжает открываться. Переименование файла, однако, работает. Файл выглядит так:

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

Все ярлыки, которые я создаю с помощью Создать → Ярлык , получают одинаковый UUID, поэтому его изменение, вероятно, не поможет.

Есть ли какой-нибудь внутренний .url файл / кэш отображения URL в Windows?

Ответы [ 4 ]

2 голосов
/ 08 апреля 2015

У меня есть основания полагать, что файлы URL интерпретируются некоторым компонентом Internet Explorer во время создания (не библейски) .Они интерпретируются только изначально, при первом создании файла.Любые изменения в файле URL позже не будут зафиксированы.Это потому, что ярлык не сохраняется в файле.Вот почему файл может быть изменен позже, так что он станет пустым, как 0-байтовый файл, и файл URL будет работать в любом случае.Данные ярлыка хранятся в поле «Веб-документ» как свойство файла в файловой системе NTFS.Файл просто служит для указания на него.Возможно, вы сможете изменить эти поля свойств программно, что якобы «отредактирует файл».Это болезненное упражнение - просто отредактировать простой текстовый файл.

Кроме того, если имя файла используется для файла URL, его нельзя повторно использовать для новых файлов, независимо от того, на каком диске или путиВы сохраняете это.Таким образом, вы должны продолжать присваивать уникальные имена файлов, которые никогда не использовались ранее, для каждого нового URL-файла, который вы создаете.Это связано с тем, как Internet Explorer кэширует веб-контент.Он запоминает, какие имена файлов уже использовались, и сопоставляет эти имена с ранее определенными URL-адресами.Чтобы повторно использовать имя (или когда у вас заканчиваются идеи для новых и уникальных имен файлов) , вам необходимо очистить временные файлы Интернета.

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

Чтобы напрямую ответить на ваш вопрос: да,это делает.

1 голос
/ 11 марта 2013

Windows 7 Кэширует ваши имена файлов и иногда, как вы сказали, имена файлов в определенных местах.

Запустите regedit и найдите следующие

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

, где S-1-5-21-xxxx - это ваш текущий зарегистрированный пользователь.

Там вы можете видеть, что большинство (или все?) Файлов были кэшированы, к которым вы когда-либо обращались.

Возможно, вы также можете отключить MUICachingпрограммно.Может быть, этот сайт поможет вам: Отключить кэширование

0 голосов
/ 01 февраля 2019

Я обнаружил, что на рабочем столе .url содержимое ярлыка кешируется в %LocalAppData%\Microsoft\Windows\Caches.

Есть несколько (несколько?) Файлов с именами файлов, такими как {<SOME_GUID>}.<x>.ver0x<XXXXXXXXXXXXXXXX>.db.У двух из них были кэшированы файлы .url.

К сожалению, я не нашел информации о том, что они из себя представляют или как их обновить.Все просто удаляют их как часть какой-то операции очистки кэша.

0 голосов
/ 14 января 2015

У меня была похожая проблема, и оказалось, что виновником был Firefox.

Если ваш браузер случайно установлен в Firefox, ваши каталоги кеша могут быть повреждены.

Вы можете создать новый профиль или рискнуть, очистив вещи от C:\Users\<username>\AppData\Local\Mozilla\Firefox\Profiles\<profile>\

...