C# 格式化超链接以打开C驱动器

C# 格式化超链接以打开C驱动器,c#,asp.net,C#,Asp.net,我正在显示网页上的超链接列表,这些超链接用于在包含该文件的文件夹中打开windows资源管理器。文件路径存储在数据库中并检索 如果有问题的文件路径在我的C代码中显示为\\\\myserver\\folder1\\somedocument.doc 我可以将超链接的href设置为:文件://\\\\myserver\\folder1,它可以工作。Windows资源管理器打开并显示folder1的内容 但是,如果最初指定该文件的用户在其C:\驱动器上选择了一个,我可能会有这样一个路径来处理C:\\So

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

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

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

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


在本例中,我希望格式化超链接,使其打开Windows资源管理器并显示C:驱动器的内容。如何操作?

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

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

它应该与网络路径一样适用。您是否尝试过
文件:\

其他用户当然不能看到该文件,只能看到提交该文件的用户。

file:///C:/
就行了。但是请注意,这只是在Internet Explorer中工作。Chrome和Firefox都不支持这种行为。(Chrome和Firefox将在浏览器中列出驱动器的内容,而不是打开Windows资源管理器)


chrome有扩展名,但我不认为这就是您要寻找的。

我硬编码了指向文件://c://的超链接的导航URL,但单击它时什么也没有发生。如果我查看超链接的属性,它会显示:协议:文件协议类型:文件地址:file:///c:/ 它不会打开Windows资源管理器,如果我把它放在html页面中,然后在IE中单击它,它确实会打开资源管理器查看c驱动器。您使用的是哪个版本的IE?旧版本可能会有所不同。无法显式指定打开资源管理器,这将取决于客户端如何设置以处理文件://protocolWell,就像您所做的那样-单击它什么也不做。我得问问网络男孩。我的开发箱是一个虚拟机,我通过VMware客户端连接到它——也许c驱动器是我凭空想象出来的!这将是安全的,我在本地运行HTML页面,如果您运行的是服务器或远程机器,它可能会被阻止。如果将站点添加到受信任的站点,它可能会起作用?您看到了吗:您应该知道,以这种方式打开windows资源管理器只适用于IE。其他浏览器实现的安全协议不允许这样做。为了保持一致性,我建议不要使用它。它只是IE内部网。谢谢。我已经尽力将url编码为指向文件://c:\\但似乎不起作用。点击超链接没有任何作用。如果我查看超链接的属性,它会将地址显示为。。。file:///c:/I 在这里使用本地HTML页面进行测试。Internet Explorer 9打开Windows资源管理器。Chrome、Firefox和Opera在浏览器窗口中显示一个文件列表。当链接不是本地网页时,所有这些浏览器都会阻止其打开。可能是出于安全原因。它之所以适用于网络共享,可能是因为它们位于同一个安全区域。您希望如何在客户端计算机上运行CMD命令?安全2.0?这是IE,就像我说的,它不适合我。我开始怀疑这是否与我的开发箱是一台通过VMware客户端连接的虚拟机这一事实有关。