Stream 从流打开文档

Stream 从流打开文档,stream,vsto,powerpoint,isolatedstorage,Stream,Vsto,Powerpoint,Isolatedstorage,有没有办法从流、内存文件或独立存储中打开演示文稿 我有一个演示文稿文件,我想在PowerPoint中打开,但不想让用户访问该文件本身。不幸的是,PowerPoint的Presentations.Open()功能(以及所有其他Office应用程序的Open())只接受一个路径参数,这意味着我必须将文件保存在磁盘上的某个位置,然后在PowerPoint中打开它,这样用户就可以访问该文件 有人在任何Office应用程序中这样做过吗?您可以使用OpenXML SDK,但不能在Office应用程序中使用

有没有办法从流、内存文件或独立存储中打开演示文稿

我有一个演示文稿文件,我想在PowerPoint中打开,但不想让用户访问该文件本身。不幸的是,PowerPoint的
Presentations.Open()
功能(以及所有其他Office应用程序的
Open()
)只接受一个路径参数,这意味着我必须将文件保存在磁盘上的某个位置,然后在PowerPoint中打开它,这样用户就可以访问该文件


有人在任何Office应用程序中这样做过吗?

您可以使用OpenXML SDK,但不能在Office应用程序中使用


但是,如果你有足够的动力,你可以在文件关闭后删除它。这非常简单,您只需要创建一个单独的进程,然后等待文件不再被锁定以进行写入。或者,如果您知道它何时关闭(例如,如果您执行关闭代码),则可能不需要单独的过程。

您可以使用OpenXML SDK来关闭,但不能从Office应用程序中关闭


但是,如果你有足够的动力,你可以在文件关闭后删除它。这非常简单,您只需要创建一个单独的进程,然后等待文件不再被锁定以进行写入。或者,如果您知道文件何时关闭(例如,如果您执行关闭代码),则可能不需要单独的过程。

从URL(未向用户公开的URL)打开文件是否足够?这仍然会在用户的硬盘上留下一个临时文件,至少在演示文稿打开的时间内,可能更长,因此可能不可接受。@SteveRindsberg:是的,该临时文件不可接受。Office应用程序总是在Office后台显示文档的路径(信息选项卡),因此知道文档的位置非常简单。从URL(不向用户公开的URL)打开文件就足够了吗?这仍然会在用户的硬盘上留下一个临时文件,至少在演示文稿打开的时间内,可能更长,因此可能不可接受。@SteveRindsberg:是的,该临时文件不可接受。Office应用程序总是在Office后台(信息选项卡)显示文档的路径,因此知道文档的位置非常简单。但是,当文件在应用程序中打开时,Office应用程序将始终显示其路径,从而便于复制。你是对的。你不能阻止他们复制它。如果要打开的powerpoint是VSTO模板/文档,则可以设置一些文档属性或变量,以使文档在未按批准的方式打开时自动关闭,但也有解决方法。确实没有办法完全控制它。但是,当文件在应用程序中打开时,Office应用程序将始终显示其路径,从而使其易于复制。你是对的。你不能阻止他们复制它。如果要打开的powerpoint是VSTO模板/文档,则可以设置一些文档属性或变量,以使文档在未按批准的方式打开时自动关闭,但也有解决方法。真的没有办法完全控制它。