OleDb を使用して物理的な (可能な限り物理的な) ファイルに接続し、レコードを追加して、Web サーバー上に Excel ファイルを作成しています。次に、MVC を介してFilePathResultをユーザーに返しますが、追加されたレコードに対するデータ保護の問題により、後で物理ファイルを削除したいと考えています。
Final 句でFile.Deleteを使用しようとしましたが、MVC がユーザーにファイルを送信しようとしたときに、ファイルがなくなったことを意味する File Not Found エラーが発生します。
File を MemoryStream として作成することを考えましたが、OleDb には接続する物理ファイルが必要だと思うので、これはオプションではありません。
1回の操作でファイルを返した後にファイルを削除する方法について何か提案はありますか?
編集
要求に応じて、これが私が取り組んでいるものですが、それがどのように役立つかはわかりません:)
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