db에서 세부 정보를 가져 와서 FileHelper를 사용하여 파일에 저장하고 파일을 전자 메일의 일부로 첨부하고 메일을 보낸 후 파일을 삭제하려고합니다.FileHelper 어셈블리로 만든 파일을 삭제할 수 없습니다.
var engine = new FileHelperEngine<DataModel>();
engine.WriteFile(filePath, data);
//After Mail is sent, deleting the file.
if (File.Exists(filePath))
{
File.Delete(filePath); //Error is thrown here
}
예외 : 다른 프로세스에서 사용 중이기 때문에 프로세스가 파일 '..//somefilepath' 에 액세스 할 수 없습니다.
메일을 보내 자마자 파일을 삭제해야 서버에있는 사용자가 서버에서 공간을 차지하게됩니다.
다른 프로세스에서이 파일을 삭제하는 방법은 무엇입니까?
편집 : 답장을 보내 주셔서 감사합니다. 파일을 보관하고 파일을 삭제하지 못하게하는 Attachment 인스턴스로 인해 문제가 발생했습니다.
MailMessage mailobj= new MailMessage();
Attachment data = new Attachment(filePath);
mailobj.Attachments.Add(data);
//after sending mail, i disposed the data
data.Dispose();
사용중인 파일을 삭제할 수 없습니다. Windows에서 허용하지 않습니다. 새로운 시도를하기 전에 약간의 시간을두고 여러 번 시도해 보시기 바랍니다. – Bart
_ 메일을 보낸 후 _ 붉은 깃발이 들립니다. 그 파일을 주장으로 추가 했습니까? 그 메일을 보낸 절차에서 _using 문을 사용하고 있습니까? 메일을 보내는 코드를 보여주십시오. – Steve
제대로 처리했는지 확인하십시오. 나는 당신의 코드가 모든 일회용 객체를 처분하지 않는다고 생각합니다. '데이터'는 이미 컬렉션에 추가하고 메일을 보내도록 서버 개체에 요청하면 첨부 파일이 아닌 해당 파일이 열립니다. – netniV