我正在 Web 服务器上创建一个 Excel 文件,使用 OleDb 连接物理(以及可以是物理的)文件并附加记录。然后我返回一个 文件路径结果 通过 MVC 发送给用户,并且由于对附加记录的数据保护问题,想在之后删除物理文件。
我试过使用 文件.删除在 最后子句,但我得到一个 File Not Found 错误,这一定意味着当 MVC 试图将文件发送给用户时文件已经消失。
我考虑过将文件创建为 MemoryStream,但我认为 OleDb 需要一个物理文件来连接,所以这不是一个选项。
关于在一次操作中返回文件后如何删除文件的任何建议?
编辑
根据要求,这就是我的工作,尽管我不确定它有什么帮助:)
Public Function ExportAllOutputs() As FilePathResult
' Create Export File Name
Dim ExportFilename As String = Replace(Me.Name, " ", "_") & "_Outputs.xls"
Try
' Create Export File
CreateExportFile(ExportFilename)
' Populate Export File
For Each OutputType As OutputTypeEnum In [Enum].GetValues(GetType(OutputTypeEnum))
ExportHelper.AppendOutputs(ExportFilepath & ExportFilename, Me.GetOutputs(OutputType), Me.ProgrammeID)
Next
' Return Export File
Return ReturnExportFile(ExportFilename)
Catch ex As Exception
Throw
Finally
'If IO.File.Exists(ExportFilepath & ExportFilename) Then IO.File.Delete(ExportFilepath & ExportFilename)
End Try
End Function
最佳答案
有点hacky,但您可以执行以下操作:
显然,如果文件很大,那么您可能会遇到内存压力。
关于.net - 如何在服务器上创建 Excel 文件并将其返回给用户后自动删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2927882/