【问题标题】:Format a hyperlink to open the C drive格式化超链接打开C盘
【发布时间】:2013-07-26 21:32:47
【问题描述】:

我在网页上显示了一个超链接列表,这些超链接旨在在包含该文件的文件夹中打开 Windows 资源管理器。文件路径存储在数据库中并被检索。

如果有问题的文件路径在我的 C# 代码中显示为 \\\\myserver\\folder1\\somedocument.doc

我可以将超链接的 href 设置为:file://\\\\myserver\\folder1,它可以工作。 Windows 资源管理器打开并显示文件夹 1 的内容。

但是,如果最初指定文件的用户在他的 C:\ 驱动器上选择了一个,我可能会有这样的路径来处理 C:\\Somefile.txt

在这种情况下,我想格式化超链接,以便它打开 Windows 资源管理器并显示 C: 驱动器的内容。我该怎么做?

【问题讨论】:

  • 您应该知道,以这种方式打开 Windows 资源管理器仅适用于 IE。其他浏览器实现的安全协议不允许这样做。为了保持一致性,我建议不要使用它。
  • 只有内网的IE。谢谢。

标签: c# asp.net


【解决方案1】:

file:///C:/ 可以。但请注意,这适用于 Internet Explorer。 Chrome 和 Firefox 都不支持这种行为。 (Chrome 和 Firefox 将在浏览器中列出驱动器的内容,而不是打开 Windows-Explorer)

chrome 有扩展,但我不认为这是你要找的。​​p>

【讨论】:

  • 这是 IE。正如我所说,它对我不起作用。我开始怀疑这是否与我的开发盒是我通过 VMware Client 连接的虚拟机这一事实有关。
【解决方案2】:

它应该与网络路径一样工作。你试过file://c:\吗? 当然,其他用户将无法看到该文件,只有提交该文件的用户才能看到。

【讨论】:

  • 我已经尝试硬编码 url 以指向 file://c:\\ 但它似乎不起作用。单击超链接什么也不做。如果我查看超链接的属性,它会将地址显示为 ... file:///c:/
  • 我在这里使用本地 HTML 页面进行了测试。 Internet Explorer 9 打开 Windows 资源管理器。 Chrome、Firefox 和 Opera 在浏览器窗口中显示文件列表。
  • 当链接不是本地网页时,所有这些浏览器都会阻止链接打开。可能出于安全原因。它适用于网络共享的原因可能是因为它们位于同一安全区域中。
【解决方案3】:

file:///c:/ 应该适用于此

【讨论】:

  • 我硬编码了指向 file://c:/ 的超链接的 NavigateUrl,但是当我点击它时没有任何反应。如果我查看超链接的属性,它会显示:协议:文件协议类型:文件地址:file:///c:/ 虽然它没有打开 Windows 资源管理器
  • 如果我把它放在一个 html 页面中:Open c 然后在 IE 中单击它确实会打开资源管理器查看c盘。您使用的是哪个版本的 IE,也许旧版本的 IE 会有所不同。无法明确指定打开资源管理器,这将取决于客户端如何设置处理 file:// 协议
  • 好吧,就像你做的那样——点击它什么也没做。我将不得不问网络男孩。我的开发盒是我通过 VMware Client 连接的虚拟机——也许 C 盘是我的想象!
  • 这将是安全的,我在本地运行 HTML 页面,如果你在服务器或远程机器上运行,它可能会被阻止。如果您将该站点添加到您的受信任站点,它可能会起作用吗?你看到了吗:dyslexicanaboko.blogspot.co.uk/2013/01/…
【解决方案4】:

要默认打开 C:\,您可以使用:“explorer.exe /e,C:\” 相同的语法适用于文件共享:“explorer.exe /e,\myserver\folder1”

【讨论】:

  • 您想如何在客户端机器上运行 CMD 命令?安全 2.0 ?
猜你喜欢
  • 2016-12-25
  • 2013-01-03
  • 1970-01-01
  • 2015-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-03
  • 1970-01-01
相关资源
最近更新 更多