.Net MVC返回文件然后将其删除

alu*_*umb 2 .net c# asp.net-mvc delete-file

我已经制作了一个MVC应用程序,当你访问/ App/export时,它会压缩特定文件夹中的所有文件,然后返回zip文件.代码看起来像:

public ActionResult Export() {
    exporter = new Project.Exporter("/mypath/")
    return File(exporter.filePath, "application/zip", exporter.fileName);
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是将文件返回给用户然后删除它.有没有办法设置超时删除文件?或保留文件句柄,以便在请求完成后才删除文件?

rse*_*nna 7

对不起,我现在没有代码......

但这里的想法是:只是避免创建一个临时文件!您可以使用a MemoryStream来直接将压缩数据写入响应.

编辑那条线上的东西(它没有用,MemoryStream但想法是一样的,避免创建临时文件,这里使用DotNetZip库):

DotNetZip现在可以直接保存到ASP.NET Response.OutputStream.