我在 .NET 中实现了一个自定义 URL 处理程序。为了测试这一点,我创建了几个不同的 .url
文件并将它们放在我的桌面上。这通常可以正常工作,但如果我更改文件的内容,特别是 URL=
行,则会出现奇怪的行为。这样做没有任何效果 - 旧 URL 继续打开。但是,重命名文件是有效的。该文件如下所示:
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,0
[InternetShortcut]
URL=myCustomScheme://some/url/pointing/somewhere
IDList=
我通过 New → Shortcut 创建的所有快捷方式都接收相同的 UUID,因此更改它可能无济于事。
Windows 中是否有一些内部 .url 文件/URL 映射缓存?
最佳答案
我有理由相信 URL 文件在创建时由某些 Internet Explorer 组件解释(不符合圣经)。它们仅在第一次创建文件时才被解释。以后对 URL 文件的任何修改都不会提交。这是因为快捷方式未存储在文件中。这就是为什么稍后可以修改该文件以使其变为空的原因,因为它是一个 0 字节文件,并且 URL 文件似乎仍然可以正常工作。快捷方式数据作为 NTFS 文件系统中的文件属性存储在“Web 文档”字段中。该文件仅用于指向它。您可能能够以编程方式修改这些属性字段,这应该是“编辑文件”。仅仅编辑看似简单的文本文件是一项痛苦的练习。
此外,一旦文件名被用于 URL 文件,它就不能再用于新文件,无论您将其保存到哪个磁盘或路径。因此,您必须为您创建的每个新 URL 文件分配以前从未使用过的唯一文件名。这与 Internet Explorer 如何缓存 Web 内容有关。它会记住已使用的文件名,并将这些名称映射到先前定义的 URL 地址。要重用名称(或者当您想不出新的唯一文件名时),您必须清除 Temporary Internet Files。
Windows 7: %localappdata%\Microsoft\Windows\Temporary Internet Files
Windows 8: %localappdata%\Microsoft\Windows\INetCache
直接回答你的问题:是的。
关于windows - Windows 是否缓存 .url(Internet 快捷方式)文件的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3329139/