我正在Web服务器上创建一个Excel文件,使用OleDb连接物理文件(以及物理文件)和追加记录。然后,我通过MVC向用户返回一个FilePathResult,并且由于对所附记录的数据保护问题而想要删除物理文件。如何在服务器上创建Excel文件并将其返回给用户后自动删除Excel文件?
我已经在最后条款使用File.Delete尝试,但我得到一个文件未找到错误这必然意味着该文件时MVC正试图将文件发送到用户已经一去不复返了。
我曾考虑将File创建为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
您应该知道OleDb在64位机器上不受支持,因此您应该为未来验证代码找到另一个解决方案。 – Cine 2010-05-28 09:35:46
你能为此发布一些代码吗? – 2010-05-28 09:36:07
我不知道OleDb不是64位 - 我必须记下这一点,但目前这不是问题,欢呼Cine,我也添加了功能,我认为解决方案会去但不确定它确实有帮助。 – 2010-05-28 10:16:37