파일을 업로드하고 대상 폴더에 같은 이름의 파일이 존재하면 삭제합니다.파일 삭제 IO 예외
메시지 "다른 프로세스에서 사용하고 있기 때문에 ... 캔트 액세스 파일" 는하지만 위의 포인트 라인은
에 예외가 발생합니다. 코드는 다음과 같습니다
public ActionResult Upload(int? chunk, string name) { string fileExtension = Path.GetExtension(name); if (fileExtension != ".csv" && fileExtension != ".xml"){ return Json(new { Success=false, Message = "<b>Invalid file type</b>" }, JsonRequestBehavior.AllowGet); } var fileUpload = Request.Files[0]; string fullName = Path.Combine(HttpRuntime.AppDomainAppPath, "App_Data", fileUpload.FileName); if (System.IO.File.Exists(fullName)) System.IO.File.Delete(fullName);// throws exception. }
'File.Exists'은 * redundant * : https://msdn.microsoft.com/en-us/library/system.io.file.delete(v=vs.110).aspx "파일이 삭제되지 않으면 예외가 발생하지 않습니다. " –
파일을 조작 할 때 모든 메서드가 닫혀 있는지 확인하십시오. 버퍼, 리더, 작가, IDocument 등 ... 나는 1 주 전에 당신과 같은 문제가있었습니다. – Alexis
"삭제는 일반 I/O 또는 메모리 매핑 된 파일을 위해 열려있는 파일을 삭제하지 않습니다." –