Estoy creando un archivo en la unidad local con contenido mediante el siguiente código.El proceso no puede acceder al archivo, porque lo está utilizando otro proceso
File.WriteAllLines(path, contents);
Estoy adjuntando este archivo a un correo electrónico y enviándolo a todo el equipo. Una vez que el correo enviado tengo que borrar el archivo, borrar el archivo que estoy utilizando a continuación código, pero estoy consiguiendo error de ejecución
File.Delete(path);
mensaje de error: El proceso no tiene acceso al archivo porque está siendo utilizado por otro proceso
por defecto El método WriteAllLines() cierra el archivo pero todavía está abierto por otro proceso. Solo puedo borrar el archivo ejecutando el código después de algún tiempo pero este no es el escenario. Necesito eliminarlo una vez que el correo ha sido enviado.
actualización
System.Net.Mail.MailMessage mailMessage = new System.Net.Mail.MailMessage();
mailMessage.To.Add(new System.Net.Mail.MailAddress(recipient, ToName));
mailMessage.From = new System.Net.Mail.MailAddress(From, FromName);
mailMessage.Subject = Subject; // "Outlook calendar as attachment"; // modified by Srikanth J on 28/06/2012
mailMessage.Body = "This is a test message";
System.Net.WebClient webclient = new System.Net.WebClient();
webclient.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
for (int i = 0; i < item.Attachments.Count; i++)
{
string url = item.Attachments.UrlPrefix + item.Attachments[i];
SPFile file = item.ParentList.ParentWeb.GetFile(url);
mailMessage.Attachments.Add(new System.Net.Mail.Attachment(file.OpenBinaryStream(), file.Name));
}
System.Net.Mail.Attachment mailAttachment = new System.Net.Mail.Attachment(path);
mailMessage.Attachments.Add(mailAttachment);
smtp.Send(mailMessage);
Cualquier ayuda es appriciated, gracias.
¿Parece que el proceso de adjuntar archivo al correo aún contiene el archivo? –
¿Podría publicar el código donde adjunta el archivo? Es muy probable que exista el problema como sugirió @CuongLe. –
@CuongLe ¿Quiere decir que, incluso después de enviar el correo, todavía lo retiene el proceso de correo? – Srikanth