在普通的HTML浏览器中,如果我点击文件的链接,我会选择保存或运行它。
在Silverlight中,我可以生成一个文件,并使用以下代码保存它:
SaveFileDialog sfd = new SaveFileDialog { Filter = "MyFileExt files (*.myFileExt)|*.myFileExt" };
Stream stream = sfd.OpenFile();
StreamWriter writer = new StreamWriter(stream);
writer.Write(myFileString);
writer.Flush();
writer.Close();
sfd = null;
是否可以提示用户打开此文件,以便他们不必打开Windows资源管理器,查找该文件并双击它?
答案 0 :(得分:3)
简短回答:不,那是不可能的 说明:Silverlight是一种客户端技术,因此访问本地计算机的可能性可能是严重的安全漏洞(只记得ActiveX以及与之相关的所有安全问题)。 使用Silverlight从本地计算机启动某些东西的一种方法是启动你的SL 4(不幸的是只有SL 4支持所有这些东西)应用程序在浏览器之外提升信任。在这种情况下,可以使用COM访问文件系统并启动应用程序 例如:
using (dynamic shell = AutomationFactory.CreateObject("WScript.Shell"))
{
shell.Exec("calc");
}