Я создаю файл Excel на веб-сервере, используя OleDb для подключения физического (а также физического, как он может быть) файла и добавления записей. Затем я возвращаю FilePathResult пользователю через MVC и хотел бы удалить физический файл впоследствии из-за проблем с защитой данных над прилагаемыми записями.Как автоматически удалить файл Excel после его создания на сервере и вернуть его пользователю?
Я попытался с помощью File.Delete в статье в Наконец, но я получаю ошибку Файл не найден, который должен означать, что файл ушел, когда 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
Вы должны знать, что OleDb не поддерживается на 64-битных машинах, поэтому вы должны найти другое решение для будущей проверки вашего кода. – Cine
Не могли бы вы опубликовать код для этого? –
Я не знал, что OleDb не 64-битный - мне нужно будет это сделать, но это не проблема на данный момент, приветствует Cine, также я добавил функцию, где, как я думаю, решение будет идти, но не уверен это действительно помогает. –