Asp.net mvc 返回浏览器后清理临时文件

Asp.net mvc 返回浏览器后清理临时文件,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我有一个控制器动作,可以动态生成PowerPoint文件。目前,可以通过解压缩现有的.pptx文件,对XML应用一些更改,并将结果压缩到新的临时.pptx文件中来实现。然后使用file()从操作返回该文件 在将临时文件返回到客户端后,如何清理该文件 有更好的方法吗?我想您使用的是一个库,比如SharpZipLib 正确的解决方案是首先不生成文件。使用SharpZipLib可以将文件写入流。只需将它指向outputstream,您就应该可以了。我最终创建了一个包装类,它实现了IDisposable

我有一个控制器动作,可以动态生成PowerPoint文件。目前,可以通过解压缩现有的.pptx文件,对XML应用一些更改,并将结果压缩到新的临时.pptx文件中来实现。然后使用file()从操作返回该文件

在将临时文件返回到客户端后,如何清理该文件


有更好的方法吗?

我想您使用的是一个库,比如
SharpZipLib


正确的解决方案是首先不生成文件。使用
SharpZipLib
可以将文件写入
。只需将它指向outputstream,您就应该可以了。

我最终创建了一个包装类,它实现了
IDisposable
,负责创建临时文件并在Dispose()中删除它。

我个人在每次调用cleanup时都会添加一个异步进程——这也是我更新缓存、执行日志记录等的方式。。。你会接到另一个电话,用它。这正是网络的本质——你可以用轮询器之类的工具进行黑客攻击,但最好还是坚持HTTP的按需模式。我实际上使用的是System.IO.Compression.ZipArchive,但我想应该也是这样。如果使用流而不是文件,将如何以及何时处理流?如果使用OutputStream作为基础流,框架将在它发送回请求时为您关闭它。我如何确切地返回流?我只看到从流中获取所有字节并使用文件返回所有字节的示例。