windows - Windows 是否缓存 .url(Internet 快捷方式)文件的内容?

标签 windows url shortcut

我在 .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/

相关文章:

c++ - Windows7 API,在哪里可以找到它

javascript - AngularJS 中 url 更改后的广播

javascript - 使用 Javascript 根据 URL 参数重定向到特定网页

c++ - 如何简明地将单个变量与许多不同的值进行比较?

javascript - 以逻辑运算符返回(&& 返回、|| 返回)

java - 在 Windows 平台上使用 Java 查找特定路由的传出 IP 地址

windows - 在 Windows 上的 bin 目录之外运行 node.js 包

python - os.walk 无法正确处理路径中的 unicode 字符

java - URL 请求参数 JSP 错误

Javascript 缩短了 if 语句添加 else 语句