Не удается удалить файл из папки
Привет, я пытаюсь удалить файл из папки с помощью c#
Я читаю диаграмму excel из excel и преобразую диаграмму в изображение и сохраняю в локальной папке для другого использования , как только я использую изображение теперь я хочу удалить это изображение, указав путь, но я получаю ошибку, как "
System.IO.IOException: 'The process cannot access the file 'D:\chart\86e740b9-83bc-470e-9e03-efa9864b1d8e.jpg' because it is being used by another process.'"
Что я уже пробовал:
{
Workbook wb = new Workbook("D:\\chart\\Qchart.xlsx"); // Access the first worksheet Worksheet worksheet = wb.Worksheets[0]; StringBuilder Reportbuilder = new StringBuilder(); Reportbuilder.Append("<html>"); Reportbuilder.Append("<header>"); Reportbuilder.Append("</header>"); Reportbuilder.Append("<body>"); Reportbuilder.Append("<table style='width:100%;' >"); foreach (var sec in SectionList) { Guid secGuid; secGuid = Guid.NewGuid(); worksheet.Cells["D6"].PutValue(sec.PerformanceScore); // Set the print area with your desired range worksheet.PageSetup.PrintArea = "AH4:BG25"; // Set all margins as 0 worksheet.PageSetup.LeftMargin = 0; worksheet.PageSetup.RightMargin = 0; worksheet.PageSetup.TopMargin = 0; worksheet.PageSetup.BottomMargin = 0; // Set OnePagePerSheet option as true ImageOrPrintOptions options = new ImageOrPrintOptions(); options.OnePagePerSheet = true; //options. = ImageFormat.Jpeg; options.HorizontalResolution = 200; options.VerticalResolution = 200; // Take the image of your worksheet SheetRender sr = new SheetRender(worksheet, options); sr.ToImage(0, "D:\\chart\\"+secGuid+".jpg"); byte[] Imge = convertImageTobytes("D:\\chart\\" + secGuid + ".jpg"); Reportbuilder.Append("<tr>'"+sec.SectionName+"'"); Reportbuilder.Append("</tr>"); Reportbuilder.Append("<tr><img src='data:image/png;base64," + @System.Convert.ToBase64String(Imge) + "'/> </tr>"); DeleteImage("D:\\chart\\" + secGuid + ".jpg"); foreach (var question in sec.ListQuestions) { } } Reportbuilder.Append("</body>"); Reportbuilder.Append("</table>"); return char111t; } public byte[] convertImageTobytes(string path) { System.Drawing.Image img = System.Drawing.Image.FromFile(path); byte[] bytes; using (MemoryStream ms = new MemoryStream()) { img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); bytes = ms.ToArray(); ms.Dispose(); ms.Close(); } return bytes; } public void DeleteImage(string path) { if ((System.IO.File.Exists(path))) { System.IO.File.Delete(path); } }