C# 如何知道控制器中的方法何时完成
我对这个方法有一个问题,我想返回一个PDF文件,当这个方法结束时,我想从目录中删除de文件C# 如何知道控制器中的方法何时完成,c#,asp.net,asp.net-mvc-4,controller,C#,Asp.net,Asp.net Mvc 4,Controller,我对这个方法有一个问题,我想返回一个PDF文件,当这个方法结束时,我想从目录中删除de文件 public ActionResult DescargaPdfCompara(string id) { var rutaPdf = string.Empty; var type = "application/pdf"; try { DateTime ahora = DateTime.Now;
public ActionResult DescargaPdfCompara(string id)
{
var rutaPdf = string.Empty;
var type = "application/pdf";
try
{
DateTime ahora = DateTime.Now;
var numeroAleatorio = new Random();
int numeroRandomico = numeroAleatorio.Next(100000000, 1000000000);
string Ruta = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Reportes\" + Convert.ToString(ahora.Year + ahora.Month + ahora.Day + ahora.Hour + ahora.Minute + ahora.Second + numeroRandomico) + ".pdf");
var result = SimuModel.ObtenerSabanaReporteComparativo(id);
var resumen = SimuModel.ObtenerPreExcel(result);
SimuModel.GenerarPdfCompa(result, resumen, Ruta);
rutaPdf = Ruta;
return File(rutaPdf, type);
}
catch (Exception e)
{
throw e;
}
finally
{
System.IO.File.Delete(rutaPdf);
}
}
在finally中,我删除了该文件,但由于该方法找不到该文件,因此出现了一个错误。出于某种原因,该方法在返回该文件之前删除了该文件
对不起我的英语,我来自智利
谢谢你的回答 更改返回类型ContentResult 删除最后一节
public ContentResult DescargaPdfCompara(string id)
{
var rutaPdf = string.Empty;
var type = "application/pdf";
try
{
DateTime ahora = DateTime.Now;
var numeroAleatorio = new Random();
int numeroRandomico = numeroAleatorio.Next(100000000, 1000000000);
string Ruta = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Reportes\" + Convert.ToString(ahora.Year + ahora.Month + ahora.Day + ahora.Hour + ahora.Minute + ahora.Second + numeroRandomico) + ".pdf");
var result = SimuModel.ObtenerSabanaReporteComparativo(id);
var resumen = SimuModel.ObtenerPreExcel(result);
SimuModel.GenerarPdfCompa(result, resumen, Ruta);
rutaPdf = Ruta;
return Content(rutaPdf, type);
}
catch (Exception e)
{
throw e;
}
}
您可以使用
System.IO.File.ReadAllBytes
将所有文件内容读取到内存中,然后删除该文件并使用另一个控制器重载返回内容。文件方法:
public ActionResult GetFile()
{
var fileName = Path.GetTempFileName();
System.IO.File.WriteAllText(fileName, "Hola, Chile!");
var bytes = System.IO.File.ReadAllBytes(fileName);
System.IO.File.Delete(fileName);
return File(bytes, "text/plain", "file.txt");
}
当我删除finally部分时,文件返回良好,问题是我必须删除它,谢谢你的回答@Maurinostroza podría hacer clic在“aceptar respuesta”中