Процесс не может получить доступ к файлу, потому что он используется другим процессом - с использованием статического класса
Я получаю ошибкуПроцесс не может получить доступ к файлу, потому что он используется другим процессом " когда я пытаюсь удалить только что загруженные файлы (это по крайней мере через несколько секунд после загрузки файлов, поэтому я уверен, что они закончили запись). Есть идеи, почему это происходит? PS: миниатюры, которые я генерирую, удаляют без проблем, но оригиналы как-то блокируются.
var FileExt = Path.GetExtension(photo.File.FileName);
var FilePath = Path.Combine(Server.MapPath("~/App_Data/" + photo.ClientId), photo.PhotoId.ToString()) + FileExt;
photo.File.SaveAs(FilePath);
var ThumbFilePath = Path.Combine(Server.MapPath("~/App_Data/" + photo.ClientId),photo.PhotoId.ToString() + "_thumbnail") + FileExt;
PhotoTools.MakeThumbnail(FilePath, ThumbFilePath, 0.15);
return RedirectToAction("Create");
Внутри класса PhotoTools ...
public static void MakeThumbnail(string ImgIn, string ImgOut, double Percent)
{
Image img = Image.FromFile(ImgIn);
double Width = img.Width*Percent;
double Height = img.Height*Percent;
MakeThumbnail(ImgIn, ImgOut, (int)Width, (int)Height);
}
Удалить функцию ...
public ActionResult DeleteConfirmed(int id)
{
Client client = db.Clients.Find(id);
db.Clients.Remove(client);
db.SaveChanges();
if (Directory.Exists(Server.MapPath("~/App_Data/" + id)))
{
Directory.Delete(Server.MapPath("~/App_Data/") + id,true);
}
return RedirectToAction("Index");
}