I'm working on an ASP.NET Core 5 project. I have this action method:
public async Task<IActionResult> CreateV3EnterCheckFile(IFormFile MarksFile)
{
    var filesCount = Directory.GetFiles("Uploads").Length;
    string path = Path.Combine("Uploads", filesCount + 1 + ".xlsx");
    await MarksFile.SaveToAsync(path);
    var xlImporter = new XLImporter();
    var importedData = await xlImporter.ImportSheetAsync(path, 0);
    var r = (from x in importedData select new { ID = x[0], StudentId = x[1] }).ToList();
    System.IO.File.Delete(path);
    return View();
}
I tried to get IFormFile uploaded file by the user to save it on the server and querying it using one of my projects (that uses LinqToExcel library).
I am querying the data and everything is perfect I still have just one problem it is this line of code:
System.IO.File.Delete(path);
It throws an exception and the message is I can't delete that file because it is still being used by another process.
I'm very sure that the process is related to the LinqToExcel library.
More details :
SaveToAsync is an extension method created by me that is its definition
 public static Task SaveToAsync(this IFormFile file, string pathToSaveTo)
        {
            return Task.Factory.StartNew(() =>
            {
                using (Stream fileStream = File.Open(pathToSaveTo, FileMode.Create, FileAccess.ReadWrite, FileShare.None))
                {
                    file.CopyTo(fileStream);
                }
            });
        }
Please - is there any way or method or solution to delete this file even if it is being used by another process?
Massive thanks in advance.
 
     
    