我如何在Silverlight本地保存多个文件

本文关键字:保存 文件 Silverlight | 更新日期: 2023-09-27 17:52:45

我的问题是我有一个LOB应用程序,它可以根据用户输入保存多个文件(只有在运行时才知道的文件数量)。遗憾的是,将其保存为单个文件并让用户将它们分开,或者将它们压缩为单个文件是不可行的。

SaveFileDialog似乎只适合一次保存一个文件。第三方控制可能是一个选择,但我还没有找到任何服务于这个目的。谢谢!

我如何在Silverlight本地保存多个文件

浏览器安全模型指南(在Silverlight之外)禁止web应用程序逻辑(脚本或其他)直接访问本地文件系统。

考虑一下,如果web应用程序脚本可以将任意文件写入本地硬盘上的任意位置,恶意网站可能会对您的计算机造成多大的破坏!

由于这个原因,Silverlight将您的代码与本地文件系统隔离开来。Silverlight管理打开文件或保存文件对话框,但出于安全原因,您的web应用程序代码永远无法直接看到文件名的完整路径。Silverlight对话框一次只支持一个文件名/路径。

Silverlight确实在本地机器上提供了独立的存储空间,您的web应用程序可以在其中写入多个文件。然而,正如评论中提到的,隔离存储在两个方向上都是隔离的——它使web应用程序与本地文件系统隔离,这使得最终用户很难在浏览器之外访问隔离存储的内容。(难度足以使非技术用户无法实现,但又不足以使隔离存储"安全",不受恶意窥探)。

如果不编写自己的本地可执行浏览器扩展(针对每个不同的浏览器品牌和版本)(或针对某些浏览器的非沙盒javascript插件),我不认为有一种方法可以让web应用程序将数据推送到多个本地文件中,以便在浏览器外的一个用户操作中使用。

由于这是内部网区域中的LOB,您是否考虑过要求您的用户将应用程序安装为具有高信任的OOB ?这将允许您在没有SaveFileDialog的情况下将文件写入users Documents文件夹。

另一个选项是使用单个SaveFileDialog调用压缩文件。

没有其他面向Silverlight的解决方案。