我正在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